Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Compiler Error C2894
Collapse the table of content
Expand the table of content

Compiler Error C2894

templates cannot be declared to have 'C' linkage

This error can be caused by a template defined inside an extern "C" block.

The following sample generates C2894:

// C2894.cpp
extern "C" {
   template<class T> class stack {};   // C2894 fail
   
   template<class T> void f(const T &aT) {}   // C2894
}

The following sample generates 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

Community Additions

ADD
Show:
© 2015 Microsoft