파트 1 ~ 2 까지 하면서 믿을 수 없게, 컴파일 의존성을 줄였다. 다음 코드는 파트 2 까지 정리된 코드이다. /* x.h : 원본 헤더, 컴파일 의존성 줄이기 위해 Pimple 적용된 모습 */ #include // 포워드 헤더 포함 #include "a.h" #include "b.h" class X : public A, private B { public: class C; // 포워드 선언 사용 X( const C& ); B f( int, char* ); C f( int, C ); C& g( B ); class E; // 포워드 선언 사용 E h( E ); virtual std::ostream& print( std::ostream& ) const; private: struct XImpl; XImpl..
컴파일 타임 검색 결과
파트 1에서 불 필요한 헤더를 제거하고 수정했다면, 파트2에선 기본 하는 일을 제외하고, 컴파일 의존성을 좀 주려 보자. 예제 코드 /* x.h : 원본 헤더 */ // #include 없어도 됨 // #include #include // 포워드 헤더 포함 #include #include "a.h" #include "b.h" #include "c.h" #include "d.h" // #include "e.h" class X : public A, private B { public: X( const C& ); B f( int, char* ); C f( int, C ); C& g( B ); class E; // 포워드 선언 사용 E h( E ); virtual std::ostream& print( std::o..
컴파일 시간을 줄이기 위한 그 첫번째 단계는 "불필요한 헤더 파일을 제거해야 한다" 부터 시작 된다. 왜냐하면 많은 헤더파일 포함은 그에 비례한 시간을 컴파일러에게 주어야 하기 때문이다. 그렇다면, 어떤 헤더 파일을 제거해도 되는지 아래 코드를 보자. /* x.h : 원본 헤더 */ #include #include #include /* A, B, C, D 혹은 E 모두 템플릿이 아니다. 단지 A와 C만 가상 함수들을 가지고 있다. */ #include "a.h" #include "b.h" #include "c.h" #include "d.h" #include "e.h" class X : public A, private B { public: X( const C& ); B f( int, char* ); C f..
최근댓글