【发布时间】:2023-03-28 18:06:02
【问题描述】:
Microsoft 说:“模板不能与使用 __declspec (dllimport) 或 __declspec (dllexport) 声明的函数一起使用。” (link)。
这是什么意思?我可以将具有完全专用模板类引用的函数导出为参数吗?
【问题讨论】:
Microsoft 说:“模板不能与使用 __declspec (dllimport) 或 __declspec (dllexport) 声明的函数一起使用。” (link)。
这是什么意思?我可以将具有完全专用模板类引用的函数导出为参数吗?
【问题讨论】:
这不是dllexport/dllimport 特有的问题,它是模板的普遍问题——目前只有一个编译器实现了export 模板的方法,有关详细信息,请参阅Comeaus template FAQ。
然而,完全专业化的模板是独特而具体的类型,基本上可以与__declspec 扩展一起使用,但除了您链接的条目之外还有limitations。
就我个人而言,我主要避免在界面中使用模板,只在内部使用它们——我看不出花时间解决这些限制会给你带来多大的好处。
【讨论】:
这意味着你不能 dllexport 一个 函数模板 采用 std::basic_string<T>&,但你当然可以 dllexport 一个 函数 采用 @987654325 @。
另见http://msdn.microsoft.com/en-us/library/twa2aw10(VS.80).aspx
【讨论】: