与其他实现方式的差异
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 模板化函数,但不能遵循推理。
在解析类模板或函数模板中使用的名称时,应将所有名称视为依赖名称。请参阅依赖类型的名称解析。
在类模板中,可在类定义的范围内重新定义模板参数。请参阅本地声明名称的名称解析。