다른 구현과의 차이점
Microsoft 전용
다음 목록에서는 Microsoft C++ 및 기타 컴파일러 간의 몇 가지 차이점을 보여 줍니다.
컴파일러는 정의된 모듈 외부에서 템플릿을 인스턴스화할 수 없습니다.Visual C++에서는 내보내기 키워드를 지원하지 않습니다.
템플릿은 __declspec (dllimport) or **__declspec (dllexport)**에서 선언한 함수와 함께 사용할 수 있습니다.
모든 템플릿 인수는 템플릿 매개 변수 목록과 정확히 일치하는 명확한 형식이 되어야 합니다.예를 들면 다음과 같습니다.
template< class T > T check( T ); template< class S > void watch( int (*)(S) ); watch( check ); //error
컴파일러는 int check( int )의 형식으로 check 템플릿 함수를 인스턴스화해야 하지만 유추는 뒤에 올 수 없습니다.
클래스 템플릿 또는 함수 템플릿을 사용하는 이름을 확인할 때 이름이 모두 종속 이름으로 취급됩니다.종속적인 형식에 대한 이름 확인을 참조하십시오.
클래스 템플릿에서 템플릿 매개 변수는 클래스 정의 범위 내에서 재정의될 수 있습니다.로컬로 선언된 이름에 대한 이름 확인@@을 참조하십시오.