从dll中导出专用模板函数
export specialized template function from a dll
我有一个模板函数,我在dll的头文件中定义。我不需要导出函数,因为所有的消费者都将读取头文件并拥有整个函数。然而,我有一个模板的专门化,它不能在头文件中定义(否则我会得到重定义链接器错误),所以它必须在源文件中。
导出该函数的正常方式是什么?
template <typename T>
bool functionName(/*params*/){
//.....
}
template<> IMPORTEXPORTMACRO
bool functionName(/*params*/);
和源文件有
template<>
bool functionName(/*params*/){
//...
IMPORTEXPORTMACRO
是其中一个要么是__declspec(dllimport)
要么是dllexport
的宏
谢谢
模板的东西确实是占位符。在你使用它之前,编译器不会用真正的(函数/类)东西替换它。你不能把它放在dll中。唯一的方法是在头文件中提供它。如果您想隐藏实现,请考虑使用类层次结构(运行时多态性)
相关文章:
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- 使用 C++20 概念模板函数专用化时的依赖项
- 将 c++ 类成员函数专用于模板类
- 使用模板模板参数进行模板定义的函数专用化
- 返回值的简单模板类成员函数专用化
- 已专用类的成员函数专用化
- 部分模板函数专用化enable_if:默认实现
- 使用数组参数进行函数专用化
- 模板函数专用化的内部编译器错误
- 在子类中定义可变参数函数专用化
- 使用模板的构造函数专用化
- 模板函数专用化Enable_if
- 如何将模板构造函数专用化移动到 cpp 文件
- 模板类模板构造函数专用化
- 模板类是否可以用作模板函数专用化的参数
- 未调用数组的函数专用化
- 如何将模板成员函数专用化为另一个模板类
- 模板类的模板函数专用化
- 参数值的自动模板函数专用化
- 如何在类中使用成员函数专用化