"typename" 키워드 구문
"typename" 키워드는 C에서 종속 이름인 중첩 이름을 참조할 때 사용됩니다. , 알 수 없는 매개변수가 있는 템플릿 인스턴스 내에 중첩되어 있음을 의미합니다. 이 키워드는 특히 유추된 엔터티(값, 유형 또는 템플릿)가 모호한 경우 이름이 유형을 나타냄을 명시적으로 지정합니다.
중첩 이름에서 "typename" 사용
다음 코드 조각을 고려하세요.
template<class K> class C { struct P {}; vector<P> vec; void f(); }; template<class K> void C<K>::f() { typename vector<P>::iterator p = vec.begin(); }
여기서 "typename"은 p를 유형, 즉 P 구조체의 벡터에 대한 반복자로 선언하려면 키워드가 필요합니다. "typename"이 없으면 컴파일러는 시퀀스 벡터
::iterator를 값이나 함수를 나타내는 표현식으로 해석하며 이는 올바르지 않습니다.
"typename"이 필요한 추가 사례
중첩된 이름 외에도 다음에서는 "typename" 키워드도 필요합니다. 시나리오:
위 내용은 C 템플릿에 'typename' 키워드가 필요한 시기와 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!