在编译时使用基于模板的长度初始化 const 数组
Initialize a const array in compile time with a template-based length
可能的重复项:
在编译时以编程方式创建静态数组 C++
是否可以在编译时初始化以下数组?
template<int n> void
foo()
{
static int pairs[2*n]; // = {0,0, 1,1, ..., n-1,n-1}
for (int i = 0; i < n; i++)
{
pairs[2*i] = pairs[2*i+1] = i;
}
do_something_with_pairs(pairs);
}
(我在Xcode 4.5上使用Clang,所以C++11是可以的)
据我所知,不可能扩展数组初始值设定项,并且排除了基于递归模板的解决方案作为生成静态初始化数据的手段。
但是,您可以做一个简单的事情,即拥有一个静态数组,其中包含您将使用的数据点。这可以通过简单的脚本生成。或者例如通过 Boost 预处理器库。
然后,您只需使用指向该数组的指针即可。
相关文章:
- 如何在旧c++中初始化const-std向量
- 我可以初始化 const 实例,以便我可以将其用作 const 来初始化数组吗?
- 使用 const char* 初始化 const ref 字符串成员时幕后会发生什么
- 如何使用函数的输出初始化 const 数组结构字段?
- 有效地初始化 const std::vector 类成员
- 正在初始化const boost multi_array
- 在类声明中初始化 const 成员变量时在调试模式下出现异常
- 如何在现代C++中用生成器初始化 const 容器?
- 初始化 const 成员的正确方法
- 如何通过头文件中的函数初始化 const int 数组?
- 通过与现有 QHash 连接来初始化 const QHash
- C++ 在头文件或构造函数中初始化 const 类成员变量?
- 在没有构造函数的情况下初始化 const c++ 类
- 如何初始化 const std::vector<MyClass>
- 使用静态方法初始化 const 类字段的做法是好是坏
- 在C++标准中哪里说必须初始化 const 内置类型变量的定义
- 从constructor参数中初始化const多维数组中的const多维数组
- 初始化const 3D数组成员变量
- 在同一构造函数中使用该 const int 初始化 const int 和对象
- 在构造函数中初始化const字段,但首先检查一个参数