完全专业的模板和dllexport

时间:2010-02-16 22:32:01

标签: c++ windows dll templates

Microsoft说:“模板不能与使用__declspec(dllimport)或__declspec(dllexport)声明的函数一起使用。”(link)。

这是什么意思?我可以导出一个具有完全专用模板类引用的函数作为参数吗?

2 个答案:

答案 0 :(得分:3)

这不是dllexport / dllimport特定问题,它是模板的一般问题 - 目前只有一个编译器实现export模板的方法,请参阅{{3}有关详细信息。

完全专业化的模板是不同的具体类型,基本上可以与__declspec扩展名一起使用,但除了您链接的条目之外还有Comeaus template FAQ

就我个人而言,我主要是在界面中避免使用模板,并且只在内部使用它们 - 我没有看到为解决这些限制所花费的时间所带来的巨大好处。

答案 1 :(得分:1)

这意味着您无法dllexport 功能模板获取std::basic_string<T>&,但您当然可以dllexport 功能std::string&

另见http://msdn.microsoft.com/en-us/library/twa2aw10(VS.80).aspx