次の方法で共有


コンパイラ エラー 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