1
2
使用“静态构造函数”习惯用法。
|
2
5
如果你用
|
3
1
|
4
1
|
5
1
你不能用静态函数包装数组,比如,
然后像这样访问它,
|
6
1
我认为这只能在C++ 0x中工作。在C++ 03中,无论你做什么,最终都会得到一个动态初始化的数组,因此可能会有初始化顺序问题。下面的C++ 0x代码不会有这样的问题。
|
7
0
将for循环嵌入到 static constructor
|
8
0
下面是一个使用Boost.MPL的示例:
请注意,数组大于
|
9
0
您可以使用附加静态成员的显式模板实例化,该静态成员的构造函数负责填写条目:
或者,由于上面Benoit已经展示了一个类似(可能更好)的解决方案,下面是一个模板递归版本,只是为了好玩:
现在,不同的编译器支持不同级别的模板递归(而且这种技术是编译器昂贵的),所以,小心……“这里是龙”;—)
|
TCD · 标准库非类型模板类是否显式实例化? 2 年前 |
sovesti · 参数较少的模板函数中的演绎 2 年前 |
KiraHoneybee · 具有构造函数参数的模板化类 2 年前 |
Seymore Glass · 模板不工作的默认参数 2 年前 |
Alexander Daum · 模板参数中对模板类型的引用 6 年前 |
ledonter · 为什么注入的类名有时不被视为类模板中的模板名? 6 年前 |