150得票5回答
使用extern模板(C++11)来避免实例化。

图1:函数模板 TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instant...

24得票1回答
如何使用extern模板。

我一直在查看 C++0x 的 N3291 工作草案。我对 extern 模板很感兴趣。第 14.7.3 节规定如下: 除了内联函数和类模板特化之外,显式实例化声明具有抑制其引用的实体的隐式实例化的效果。 FYI:术语“显式实例化声明”是标准用语,表示 extern 模板。这是在第 14.7...

21得票6回答
如何在C++中显式实例化一个模板以适用于MPL向量的所有成员?

考虑以下头文件: // Foo.h class Foo { public: template <typename T> void read(T& value); }; 我希望在一个源文件中为所有包含在boost::mpl::v...

21得票4回答
何时使用模板显式实例化?

我刚刚阅读了有关模板显式实例化的内容: template struct MyStruct<long>; 据描述,这种方式“相当少见”,那么在什么情况下会有用呢?

19得票1回答
通过模板别名显式实例化类

是否可以通过模板别名显式实例化模板类? 如果可以,如何实现?否则,能否指出讨论并决定不支持此功能的ISO文件?template<class T> struct A { }; /// Explicit instantiate A for int: template struct ...

12得票1回答
模板类的模板构造函数的显式实例化

我不确定这是否是Clang 3.2的错误或C++03的违规,但似乎模板类的显式实例化构造函数失败了,但模板类的成员函数的显式实例化成功了。 例如,以下内容在clang++和g++中都可以编译,没有问题: template<typename T> class Foo { publ...

11得票1回答
使用`extern template`与第三方仅头文件库

我正在使用glm库,它是一个头文件式的数学工具集合,用于3D图形。通过在Clang上使用-ftime-trace和ClangBuildAnalyzer,我注意到大量时间都花费在实例化glm类型上:**** Templates that took longest to instantiate: ...

10得票5回答
如何简洁地编写大量明确的函数模板实例化?

我正在编写一个包含许多函数模板的C++库,我想要为几个类型参数显式实例化并导出它们。在我的特定情况下,我有许多数值函数模板,我希望为float、double和long double分别实例化和编译。它们看起来像这样: template <typename T> T calcula...

10得票1回答
在MSVC中的模板静态定义和显式特化实例化错误

我想知道为什么下面的代码在gcc中可以正常运行。 #include <iostream> using namespace std; template<typename T> struct F { static T const value; }; templa...

9得票1回答
如何显式实例化基础模板类?

这个问题考虑了模板类的显式实例化。 考虑一个从另一个模板类 A<T> 派生的模板类 B<T>。我想要显式实例化 B<T>,因为它的方法将从动态链接中调用,所以这些方法必须被实例化,即使它们在代码中没有被调用。当然,从 A<T> 继承的方法也将被...