如何在C++ 11中或在boost的帮助下初始化固定大小的数组并使用constexpr函数分配元素

liu*_*rry 5 c++ boost c++11

可能重复:
在C++编译时以编程方式创建静态数组

我有很多数据存储在固定数组中,其元素取决于位置.可以在编译时计算每个元素的值.

我的代码几乎就像:

int fun(int p) // maybe constexpr
{
    return 0x1<<p;
}

int a[17] = {
    repeat_fun_from_0_to_16();
};
Run Code Online (Sandbox Code Playgroud)

因为所有的值都可以在编译时确定,所以应该有办法做到这一点,我想.

我还检查了repeat()boost.assignment中有一个,但不知道如何在这种情况下使用它.

liu*_*rry 1

感谢@aleguna,我已经通过这个答案解决了这个问题。

我需要更改的是元函数:

template<size_t index> struct MetaFunc { 
    enum { value = index << 1 }; 
};
Run Code Online (Sandbox Code Playgroud)