编译器错误 C3412

“template”:不能在当前范围内专用化模板

模板不能在类范围专用化,只能在全局范围或命名空间范围内。

示例

以下示例生成 C3412。

// C3412.cpp
template <class T>
struct S {
   template <>
   struct S<int> {};   // C3412 in a class
};

以下示例演示了可能的解决方法。

// C3412b.cpp
// compile with: /c
template <class T>
struct S {};

template <>
struct S<int> {};