【问题标题】:C++ template compilation [duplicate]C ++模板编译[重复]
【发布时间】:2019-10-02 11:49:29
【问题描述】:

我想用模板类编译一个静态库。我知道这不可能对每种类型都完成,但我知道将使用这个库的程序将只需要几个模板“实例化”(我的意思是,对于几个已知类型)。

有没有办法在库本身内为这些类型手动触发模板类的编译?

【问题讨论】:

  • 看看这个link
  • 不喜欢重复——它不太清楚,而且答案不能转换为 C++11,因为它是从 2010 年开始的。

标签: c++ templates


【解决方案1】:

是的:您需要explicit template instantiation

在您的标题中:

extern template struct YourClass<Foo>;

在您的 .cpp 文件中:

template struct YourClass<Foo>;

请注意,如果您确定用户不需要任何其他专业化,您可以隐藏模板定义,因为它们只需要在显式实例化定义中可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    相关资源
    最近更新 更多