서식 및 이름 확인
템플릿 정의에 세 가지 유형의 이름입니다.
서식 파일 자체의 이름과 그 이름을 포함 하 여 이름을 로컬로 선언, 템플릿 정의 안에 선언.
템플릿 정의 외부 포함 범위 이름.
몇 가지 방법으로 템플릿 인수에 종속 된 이름 이라는 종속 이름으로 합니다.
처음 두 사람은 또한 클래스 및 함수 범위에 영향을 주는 반면 이름 확인에 대 한 특별 한 규칙의 템플릿 정의 추가 종속 이름 복잡성을 해야 합니다.템플릿이 인스턴스화될 때까지, 완전히 다른 종류는 서식에 따라 인수를 사용 하지 않을 수 있으므로 컴파일러 이러한 이름은 모르고 때문입니다.이름 관련 된 일반적인 규칙에 따라 한 템플릿 정의에 조회 됩니다.템플릿 인수를 독립 되 고 이러한 이름은 한 번에 모든 템플릿 특수화를 간주 됩니다.종속 이름 템플릿이 인스턴스화될 때까지 검색 되지 않습니다 및 각 전문화에 대해 개별적으로 조회 됩니다.
형식 템플릿 인수에 종속 된 경우 종속 됩니다.특히, 형식 경우 다릅니다.
템플릿 인수 자체.
T
종속 형식을 포함 하 여 자격을 가진 정식된 이름:
T::myType
종속 형식 조건이 지정 되지 않은 부분을 식별 하는 경우 정규화 된 이름:
N::T
Const 또는 volatile 형식 기본 형식에 대 한 종속 형식입니다:
const T
포인터, 참조, 배열 또는 함수 포인터 형식 종속 형식에 따라.
T *, T &, T [10], T (*)()
배열 크기가 템플릿 매개 변수를 기반으로 합니다.
template <int arg> class X { int x[arg] ; // dependent type }
템플릿 매개 변수에서 생성 된 서식 파일 형식:
T<int>, MyTemplate<T>
형식에 대 한 종속성 및 값에 대 한 종속성
이름과 식을 템플릿 매개 변수에 따라 종속 형식 또는 템플릿 매개 변수 형식 매개 변수 또는 값 매개 변수 인지 여부에 따라 종속 값으로 분류 됩니다.종속 값 식으로 초기화 된 정수 계열 또는 열거형 형식으로 또한 템플릿에서 템플릿 인수에 종속 되는 형식으로 선언 된 식별자 값 종속으로 간주 됩니다.
종속 형식 및 종속 값 식은 유형 또는 값에 종속 되는 변수가 포함 된 식입니다.이러한 식의 서식 파일을 사용 하는 매개 변수에 따라 다른 의미를 가질 수 있습니다.