在C++中分离模板接口和实现

Alo*_*ave 10 c++ templates export c++11

这是一个后续问题: 将export关键字与模板一起使用

正如在原始问题的答案中所提到的,'export'在C++ 0x中已被弃用,即使对于C++ 03也很少得到编译器的支持.鉴于这种情况,可以用什么方式隐藏lib文件中的实际实现,只是通过头文件公开声明,以便最终用户可以知道暴露的API的签名是什么,但是无法访问实现相同的源代码?

Bo *_*son 7

在实践中你不能.

只有当您拥有一组特殊化时,才能将它们放入库中.基本模板不能放在那里.

另一方面,使用导出并没有隐藏源.编译器仍然需要它来从模板中实例化新类.