7. Templates and Genericity

템플릿과 일반화 프로그래밍을 알아보자.

64. Blend static and dynamic polymorphism judiciously.

단순한 부분의 합보단 훨씬 그 이상이다. 정적/동적 다형성은 상호보완적이다. 그들의 트레이드오프를 이해하고, 그것이 가장 적합한 부분에 사용하고, 그들을 섞어 각자의 분야에서 최선이 되게 하라.

65. Customize intentionally and explicitly.

의도적인 것은 우연적인 것보다 낫고, 명시적인 것은 암시적인 것보다 낫다. 템플릿을 쓸 때에는 커스텀화의 지점을 정확히 알고 올바르게 제공하고 그들을 명백하게 문서화하라. 템플릿을 사용할 때에는 템플릿이 당신의 타입의 사용에 어떻게 커스텀화될 수 있는지를 알고 이를 적절히 커스텀화하라.

66. Don’t specialize function templates.

특수화는 올바르게 되었을 때에만 좋다. 다른 누군가의 함수 템플릿 (std::swap을 포함해)을 확장할 때에는 특수화를 쓰는 것을 피하라. 그 대신, 함수 템플릿의 오버로드를 쓰고 그 오버로드가 사용되도록 설계된 타입의 네임스페이스에 넣어라. 고유의 함수 템플릿을 쓸 때에는 함수 템플릿 자신의 직접 특수화를 유도하는 것을 피하라.

67. Don’t write unintentionally nongeneric code.

세부가 아닌 추상화를 수행하라. 기능의 조각을 구현하기 위해서는 가장 일반화되고 추상화된 것들을 사용하라.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중