Pimpl 컴파일 타임 캡슐화 (현대 C++)
Pimpl 건드릴 숨기기 구현 결합을 최소화 하 고 인터페이스를 구분 하는 최신 c + + 기술입니다.Pimpl 줄임말이 "포인터 구현 합니다."입니다. 이미 개념에 익숙할 수 있지만 건드릴 명칭 또는 방화벽 컴파일러와 같은 다른 이름으로 알고 있는.
Pimpl 사용 하는 이유
Pimpl 건드릴 소프트웨어 개발 수명 주기를 개선할 수 있는 방법을 다음과 같습니다.
컴파일 종속성을 최소화 합니다.
인터페이스와 구현을 분리입니다.
이식성입니다.
Pimpl 헤더
// my_class.h
class my_class {
// ... all public and protected stuff goes here ...
private:
class impl; unique_ptr<impl> pimpl; // opaque type here
};
Pimpl 건드릴 다시 따라 변경 되 고 불안정 해 개체 레이아웃을 피할 수 있습니다.(타 동적으로) 널리 사용 되는 형식에 적합 합니다.
Pimpl 구현
정의 impl 클래스의.cpp 파일에.
// my_class.cpp
class my_class::impl { // defined privately here
// ... all private data and functions: all of these
// can now change without recompiling callers ...
};
my_class::my_class(): pimpl( new impl )
{
// ... set impl values ...
}
모범 사례
도끼 비 스왑 특수화에 대 한 지원을 추가할지 여부를 고려해 야 합니다.