class SessionImpl; class Session { public: Session() = default; virtual ~Session() = default; private: std::unique_ptr pImpl_; }; 이 코드를 빌드하면 visual studio 에서 아래 오류가 발생한다. 오류 C2027 정의되지 않은 형식 'SessionImpl'을(를) 사용했습니다. 경고 C4150 불완전한 형식 'SessionImpl'에 대한 포인터를 삭제했습니다. 소멸자가 호출되지 않습니다. 오류 C2338 can't delete an incomplete type 이유는 SessionImpl 이 전방선언되어 있고 Session의 생성자/소멸자가 SessionImpl의 정의를 알 수 없기 때문이다. ..