Class Template

클래스 템플릿 설계 체크

클래스 템플릿은 타입만 바뀌는 자료구조와 정책을 하나의 설계로 묶습니다.

타입

타입 매개변수

저장할 값의 타입을 템플릿 매개변수로 분리합니다.

멤버

T에 의존하는 멤버

멤버 변수와 함수가 T에 직접 의존하는지 확인합니다.

별칭

자주 쓰는 조합

자주 쓰는 조합은 using으로 이름을 붙입니다.

분리

정의 위치 한계

선언과 구현 분리 시 템플릿 정의 위치를 조심합니다.

클래스 템플릿 후보

Stack<T>, Pair<K,V>처럼 구조는 같고 타입만 달라지는 코드입니다.

헤더 배치

컴파일러가 정의를 봐야 인스턴스화할 수 있으므로 헤더 배치가 중요합니다.

타입별 생성

int 버전과 string 버전이 독립된 타입으로 생성된다는 점을 구분합니다.