class template

클래스 템플릿 재사용

Pair<int, double>, std::vector, 비타입 템플릿 매개변수, 특수화가 클래스 패턴의 확장 지점입니다.

Pair<T, U>

다중 타입 매개변수

Pair<int, double>과 Pair<string, int>는 서로 다른 실제 타입입니다.

정의 위치

템플릿 정의 위치

.cpp로 분리하면 링크 오류가 날 수 있습니다.

비타입 매개변수

비타입 템플릿 인수

정적 배열 래퍼나 작은 버퍼 타입에서 자주 보입니다.

특수화

부분 특수화 용도

일반 템플릿과 예외 규칙의 경계를 문서화해야 합니다.

인스턴스 템플릿 인수가 달라지면 컴파일러는 별도 클래스 타입을 만듭니다.
사용 문법 클래스 이름 뒤의 꺾쇠괄호가 실제 타입 조합을 나타냅니다.
코드 배치 선언과 정의가 떨어지면 컴파일 단위가 본문을 보지 못할 수 있습니다.