패턴이 아니라 idiom이라는데 일단 그런 용어문제는 제껴두고
Pimpl을 쓰는 목적이 컴파일시간 단축이랑 선언/구현분리잖아
컴파일속도 빨라지는거야 뭐 이해하겠는데
설계상의 이점이 뭔지는 알듯말듯하네
선언과 구현을 분리한다 하는데 그 이유만 가지고는 굳이 pimpl을 쓸 이유가 없는 거 같음
일단 C++자체에 멤버함수 정의를 다른곳으로 뺄 수 있는 문법도 제공하잖음
근데 pimpl 예제 볼때마다 private 멤버 변수들을 다른곳으로 꽁쳐놓더라
이거 하려고 pimpl idiom 쓰는거임?
나는 ABI 깨지는 걸 되도록 피하려고 쓴다. api는 그대로라도 경우에 따라 수정에 멤버 추가가 필요할때 추가하면 ABI호환성 깨지자나
휴.. 횽님 abi는 제겐 너무 먼 이야기인것 가타요 8ㅅ8
헤더에서 매번 바뀌는 다른 헤더 포함 안시켜서 recompile 피할라고 cpp파일에서 Impl 구조체 정의하는 거임
윗놈 말대로 게임 엔진 같은 대형 코드베이스에서 재컴파일 막을라고 쓴다. 그래서 보통 compilation firewall 이라고도 부름. 재컴파일 하더라도 방화벽 전까지만 재컴파일 한다 해서 - dc App
그렇군여.. 컴파일 오버헤드 막으려는 이유가 생각보다 큰가보네요