태그: PIMPL
6편
-
C++ 크로스 플랫폼 빌드: MinGW·iOS·Android NDK 툴체인 파일과 CPack 패키징
C++ 크로스 플랫폼 빌드: MinGW·iOS·Android NDK용 CMake 툴체인 파일, CPack 패키징(DEB/RPM/NSIS/DMG)과 런타임 검색 경로, 심볼 버전, CI 매트릭스, 빌드·링크·패키징 에러 해결을 다룹니다.
-
C++ Pimpl 이디엄: 헤더 변경 없이 구현 바꾸기, 소멸자를 .cpp에 두는 이유
private 멤버를 Impl 구조체로 옮기고 unique_ptr로 가리키게 해 헤더 변경 없이 구현을 바꾸는 Pimpl 이디엄을 구현하고, 소멸자를 .cpp에 정의해야 하는 이유, 복사 연산 직접 구현, 이동 후 nullptr 상태, Fast Pimpl의 트레이드오프를 설명합니다.
-
C++ 라이브러리 ABI를 깨지 않는 법: PIMPL, extern "C" 인터페이스, 버전 관리, 검증 도구
C++ 라이브러리 ABI 호환성: 구조체 레이아웃·vtable·name mangling이 깨지는 원리, extern "C" 경계와 크기 필드를 둔 확장 구조체, 시맨틱 버전과 SONAME·심볼 버전, abi-compliance-checker·libabigail로 CI에서 ABI 변경을 잡는 방법.
-
unique_ptr 고급 활용: 커스텀 삭제자, 배열, Pimpl, C API 핸들 감싸기
C++ unique_ptr 고급 활용. 커스텀 삭제자와 EBO로 오버헤드 없애기, unique_ptr<T[]> 배열, Pimpl 패턴과 ABI 안정성, 팩토리와 이동 의미론, malloc/free·FILE*·HANDLE 같은 C API 연동을 다룹니다.
-
C++ PIMPL과 브릿지 패턴 | 구현 숨기기와 추상화 [#19-3]
클래스에 private 멤버를 하나 추가했습니다. 그런데 이 클래스를 쓰는 모든 .cpp가 다시 컴파일되었습니다. 대규모 프로젝트에서 이 현상은 빌드 시간을 수 분에서 수십 분으로 늘립니다. 비유하면 PIMPL은.
-
C++ 인터페이스 설계와 PIMPL: 컴파일 의존성을 끊고 바이너리 호환성(ABI) 유지하기
private 멤버 하나만 바꿨는데 전체가 다시 빌드되는 문제를 PIMPL로 막는 방법을 설명합니다. 헤더 의존성이 재컴파일 범위를 넓히는 원리, Rule of Five 처리, incomplete type 에러, 이동 후 상태, PIMPL의 비용과 대안(전방 선언, Fast PIMPL)을 다룹니다.