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