다음을 통해 공유


기타 구현과의 차이점

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 ) 형식으로 인스턴스화해야 하지만 유추가 뒤에 올 수 없습니다.

  • 클래스 템플릿이나 함수 템플릿에 사용된 이름을 확인할 때 모든 이름이 종속 이름으로 처리됩니다. 종속 형식의 이름 확인을 참조하십시오.

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

참고 항목

기타 리소스

템플릿