다음을 통해 공유


다른 구현과의 차이점

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 템플릿 함수를 인스턴스화해야 하지만 유추는 뒤에 올 수 없습니다.

  • 클래스 템플릿 또는 함수 템플릿을 사용하는 이름을 확인할 때 이름이 모두 종속 이름으로 취급됩니다.종속적인 형식에 대한 이름 확인을 참조하십시오.

  • 클래스 템플릿에서 템플릿 매개 변수는 클래스 정의 범위 내에서 재정의될 수 있습니다.로컬로 선언된 이름에 대한 이름 확인@@을 참조하십시오.

참고 항목

기타 리소스

서식 파일