【发布时间】:2012-01-29 07:24:27
【问题描述】:
我有一个 X 课...
class X {...}
我想为一组类型的每个不同类型创建一个 X 实例。 (其中一些类型不是类和/或不是我编写的。)
为此我想到了:
template<typename T> X& XT();
然后对于每种类型 A、B 和 C:
template<> X& XT<A>() { static X x; return x; }
template<> X& XT<B>() { static X x; return x; }
template<> X& XT<C>() { static X x; return x; }
这行得通吗?这是最好的方法吗?有哪些替代方法?
【问题讨论】:
-
这很聪明。我想不出它为什么不起作用的任何原因。
-
对我来说,问题还不清楚。
-
你心目中的“本地”这个词指的是什么?
-
@KerrekSB:可能是本地的。
-
来自标准:“在块范围内声明的变量是局部变量”C++11 3.3.3
标签: c++ templates c++11 instantiation