템플릿 정의
template <typename T> class Box처럼 타입 매개변수를 둔다.
blueprint클래스 템플릿은 타입을 인자로 받는 설계도라서 컴파일러가 사용 타입을 볼 수 있어야 하며, specialization과 deduction guide는 예외 경로를 만든다.
template <typename T> class Box처럼 타입 매개변수를 둔다.
blueprintBox<int>, Box<std::string>처럼 실제 타입이 쓰이는 지점을 컴파일러가 본다.
instantiation point해당 타입에 대해 필요한 멤버 함수 코드가 생성되고 타입 요구 조건을 검사한다.
compile-timepartial/full specialization이나 deduction guide가 있으면 일반 규칙보다 먼저 고려된다.
사용자 정의 경로