templates cannot be declared to have 'C' linkage
Possible cause
Example
extern “C” {
template<class T> class stack { //error }; template<class T> void f(const T &aT){} //error }
and
extern “C” template<class T> void f(const T &aT) {} //error