Microsoft说:“模板不能与使用__declspec(dllimport)或__declspec(dllexport)声明的函数一起使用。”(link)。
这是什么意思?我可以导出一个具有完全专用模板类引用的函数作为参数吗?
答案 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