コンパイラ エラー C2894
テンプレートが 'C' リンケージであると宣言できません
このエラーは、extern "C"
ブロック内で定義されたテンプレートが原因で発生する可能性があります。
次の例では C2894 が生成されます。
// C2894.cpp
extern "C" {
template<class T> class stack {}; // C2894 fail
template<class T> void f(const T &aT) {} // C2894
}
次の例では C2894 が生成されます。
// C2894b.cpp
// compile with: /c
extern "C" template<class T> void f(const T &aT) {} // C2894
template<class T> void f2(const T &aT) {} // OK