从其他实现的差异

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
    

    该编译器应在窗体 int check( int ) 实例化 check 模板化功能,但是,不能后接推理。

  • 当解析在类模板或函数模板中使用的名称时,应该将所有名称视为依赖名称。 请参见 Name Resolution for Dependent Types(依赖类型的名称解析)。

  • 在类模板中,可在类定义范围内重新定义模板参数。 请参见 Name Resolution for Locally Declared Names(本地声明名称的名称解析)。

请参见

其他资源

模板