#6. [레거시 C++ STL] 타입 특성 클래스(Traits)
타입 특성 클래스를 이용하여 템플릿 인자와 코딩 계약을 맺어라. 타입 특성 클래스를 이용하여 타입 처리 방식을 응집하라.
타입 특성 클래스를 이용하여 템플릿 인자와 코딩 계약을 맺어라. 타입 특성 클래스를 이용하여 타입 처리 방식을 응집하라.
함수 템플릿 오버로딩시에는 T보다는 T* 보다는 const T*가 선택된다. 연산자 오버로딩은 비멤버 함수 템플릿으로 작성하라. 함수 템플릿 인수 추론시 T&는 T로 추론된다.
종속 타입인 경우 typename, 템플릿 파싱 오류시 template을 작성하라.
일반화 프로그래밍에서의 다형적 동작을 위해 템플릿 특수화, 템플릿 부분 특수화, 함수 템플릿 특수화, 함수 오버로딩을 이용하라. 함수 템플릿을 정의할때 함수 템플릿 오버로딩과 함수 템플릿 특수화의 순서를 지켜라.
템플릿은 템플릿 인스턴스화 하기 전에는 코드를 생성하지 않는다. 클래스, 함수, 멤버 함수, 중첩 클래스를 템플릿으로 만들 수 있다.