从C文件调用模板函数

收货人

我知道模板不是用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链接的模板)。我的疑问是,是否有可能以这种方式调用此模板函数?如果是,如何实现?谢谢你。

彼得-恢复莫妮卡

由于您已经混合使用C和C ++(因此必须解决可能的问题),因此另一个解决方案是继续使用C ++开发应用程序这样,新代码可以使用C ++库的所有出色功能,例如模板;-),重载函数等,并且可以访问C ++的标准库,从而可以大大提高工作效率。

在应用程序中,对于新的源文件,我看不出使用C ++的主要障碍。另一个问题是,是否容易并值得在编辑时将现有的C文件切换到C ++。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用于调用函数的C ++模板

来自分类Dev

模板类特化函数调用。C ++

来自分类Dev

函数调用运算符的C ++模板

来自分类Dev

C ++模板和模糊函数调用

来自分类Dev

C ++:转发模板成员函数调用失败

来自分类Dev

函数指针类型的c ++模板调用

来自分类Dev

C ++继承:调用模板的子类函数

来自分类Dev

C ++模板和模糊函数调用

来自分类Dev

调用模板函数C ++时出错

来自分类Dev

c ++调用模板构造函数实例化

来自分类Dev

C ++:调用模板化类的非模板化函数

来自分类Dev

C ++如何使用模板类调用模板函数?

来自分类Dev

C ++模板:从基类调用派生模板类的成员函数

来自分类Dev

多个文件函数调用C ++

来自分类Dev

VueJS-直接从模板调用外部JS文件中的函数

来自分类Dev

如何从 ejs 模板调用外部文件的 javascript 函数?

来自分类Dev

从 .c 文件调用 .cpp 文件中的函数

来自分类Dev

从模板多次调用的函数

来自分类Dev

模板函数未调用

来自分类Dev

从模板调用组件函数

来自分类Dev

调用模板成员函数

来自分类Dev

如何从C文件调用C ++构造函数

来自分类Dev

当C ++中也有非模板函数时,调用专门的模板函数

来自分类Dev

C ++ 11简化了调用同一模板函数的不同专长的模板函数的语法

来自分类Dev

C ++模板:调用两个选项之间匹配的函数

来自分类Dev

C ++在调用时指定函数的非模板版本

来自分类Dev

C ++调用嵌套模板类的析构函数

来自分类Dev

没有调用C ++模板化静态成员构造函数

来自分类Dev

C ++模板和对重载函数的歧义调用