我知道模板不是用 C 定义的。但是在我的例子中,我有一个用 C++ 编写的 API,它由用 C 编写的应用程序使用。我希望在 API 中添加一个模板函数。该函数在 abc.cpp 中定义如下:
template<typename T> T function_name(T param1){
...
...
return val;
}
abc.hpp 中的声明如下:
template<typename T> T function_name(T);
这个函数是从 xyz.c 调用的:
int a ,b = 5;
a = function_name(b);
但是,它在 abc.cpp 和 abc.hpp 中都显示以下错误:
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
template<typename T>
即使使用 extern "C" 也无济于事(导致错误:带有 C 链接的模板)。我的疑问是,是否可以以这种方式调用此模板函数?如果是,如何实现?谢谢你。