C++ 템플릿 가이드 (다비드 반데부르드,니콜라이 요수티스, 2008) 독후감

less than 1 minute read

템플릿 만으로 이만큼 분량을 뽑아낼 수 있구나. 자세한 설명으로 템플릿 내공을 쌓는데 그만이다.

문장이 어렵다. 뭐 별수 있나. 여러 번 읽어야지. 내공이 부족한 탓도 있겠지만, 문장이 어려운 건 사실. 예제 코드가 많아 다행이야. 예제 코드 덕에 이해한 내용이 많았다.

1부, 2부는 스토리가 없이 하나하나 나열. 자세하게 설명을 해놨지만 잘 안 넘어간다. 3부는 그나마 읽을만했다. 과장된 예제라도 상관없으니 만들면서 설명했다면 더 재미있게 읽었을 것이다.

10장 인스턴스화. 특히 컴파일러 구현 방식을 설명해서 이해가 잘 됐다. 몰랐던 사실을 자세하게 설명해서 재미도 있었다.

SFINAE(Substitution failure is not an error) 설명을 보고 무릎을 쳤다. 비슷한 코드를 예전에 봤는데, 이게 뭔가 싶었는데, 이렇게 쓰이는 거구나.

템플릿 외에 제일 처음에 나오는 const 위치에 관한 얘기도 재미있었다. const int, int const 이 둘 중 어떤 걸 사용하느냐인데, 두 가지 이유로 int const 사용을 권장. 설득력 있어. 첫 번째 ’무엇이 상수인가?’에 대한 답을 명확하게 한다. 두 번째 typedef char * CHARS; typedef CHARS const CPTR; 같이 문법적 치환도 가능하게 한다. 코딩 컨벤션을 정할 때, 참고할 만하다.

Update <2018-01-02 Tue> 표지 사진 교체