5

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

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

我的代码几乎是这样的:

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

int a[17] = {
    repeat_fun_from_0_to_16();
};

由于所有值都可以在编译时确定,我猜应该有办法做到这一点。

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

4

1 回答 1

1

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

我需要改变的是元函数:

template<size_t index> struct MetaFunc { 
    enum { value = index << 1 }; 
};
于 2012-12-28T12:29:56.723 回答