相关疑难解决方法(0)

Modern C++:初始化constexpr表

假设我有一个类X,哪个功能需要很多常量表值,比如一个数组A[1024].我有一个f计算其值的重复函数,就像

A[x] = f(A[x - 1]);
Run Code Online (Sandbox Code Playgroud)

假设这A[0]是一个已知常量,因此数组的其余部分也是常量.使用现代C++的功能预先计算这些值的最佳方法是什么,并且没有使用此数组的硬编码值存储文件?我的解决方法是一个const静态虚拟变量:

const bool X::dummy = X::SetupTables();

bool X::SetupTables() {
    A[0] = 1;
    for (size_t i = 1; i <= A.size(); ++i)
        A[i] = f(A[i - 1]);
}
Run Code Online (Sandbox Code Playgroud)

但我相信,这不是最美好的方式.注意:我强调数组相当大,我想避免代码的怪异.

c++ precompile constexpr c++11 c++17

20
推荐指数
2
解决办法
2467
查看次数

标签 统计

c++ ×1

c++11 ×1

c++17 ×1

constexpr ×1

precompile ×1