【发布时间】:2011-03-24 09:07:26
【问题描述】:
据我了解,可以使用“export”关键字,以便可以通过头文件公开模板类或函数签名,并将实际实现抽象到库文件中。
谁能提供一个实用的示例程序来说明如何做到这一点?
使用它时是否有任何缺点或需要注意的要点?
编辑:基于答案的后续问题。正如答案中提到的那样,“导出”在 C++0x 中已被弃用,即使对于 C++03x,编译器也很少支持。鉴于这种情况,如何在 lib 文件中隐藏实际实现,只通过头文件公开声明,以便最终用户可以知道公开 API 的签名是什么,但无法访问实现相同的源代码?
【问题讨论】:
-
我还不知道所有编译器都支持它。我认为 Comeau 是少数拥有它的人之一。
-
This C++ FAQ-Lite entry 似乎回答了你的问题。
-
C++0x 中没有弃用 export 吗?此外,它在 C++03 中不可用(Comeau 编译器除外)。
-
@Alexandre C:考虑过弃用它 (herbsutter.com/2009/10/23/…),但我没有完全遵循。
-
“正如答案中提到的'export'在 C++0x 中已弃用”,如果他们这样说,这些答案是不正确的。该关键字已从 C++0x 中完全删除。
标签: c++ templates c++11 export