这是一个跟进问题: Using export keyword with templates
如原始问题的答案中所述,“导出”在 C++0x 中已弃用,即使对于 C++03,编译器也很少支持。鉴于这种情况,如何才能将实际实现隐藏在 lib 文件中,只通过头文件公开声明,以便最终用户可以知道公开的 API 的签名是什么,但无法访问实现相同 API 的源代码?
最佳答案
实际上你不能。
只有当你有一套特定的特化时,你才能把它们放在图书馆里。基本模板不能放在那里。
另一方面,使用导出并没有隐藏源。编译器仍然需要它从模板中实例化新类。
关于c++ - 在 C++ 中分离模板接口(interface)和实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417465/