c++ - C++模板编译
问题描述
我想用模板类编译一个静态库。我知道这不可能对每种类型都完成,但我知道将使用这个库的程序将只需要几个模板“实例化”(我的意思是,对于一些已知类型)。
有没有办法在库本身中为这些类型手动触发模板类的编译?
解决方案
是的:您需要一个明确的模板实例化。
在您的标题中:
extern template struct YourClass<Foo>;
在您的 .cpp 文件中:
template struct YourClass<Foo>;
请注意,如果您确定用户不需要任何其他专业化,您可以隐藏模板定义,因为它们只需要在显式实例化定义中可见。
推荐阅读
- python - Python TextBox 在没有换行符的情况下追加文本
- ruby-on-rails - 指示当前登录的用户
- data-warehouse - “数据集市”是“星型模式”的同义词吗?
- python - 大括号中名称作为类型提示的含义
- python - 在 Windows 上制作 Python 独立 Linux 可执行文件
- twitter-bootstrap - 提供边距/填充会影响 col-sm-n。如何在 bootstrap4 中避免这种情况
- javascript - 网络浏览器如果无法加载如图所示的角度但我已经根据本书配置了应用程序
- ios - 使用 spritekit 使精灵快速移动
- javascript - 如何在 HTML 的特定部分添加和删除“表格”?
- python - 使用 fitEllipse 对图像进行椭圆拟合