在 C 11 中,创建 N 个元素的 constexpr 数组并不像该语言的更高版本中那么简单。虽然 constexpr 数组是在 C 11 中引入的,但它们的功能是有限的,并且不可能使用与 C 14 及更高版本中相同的语法创建可变长度的 constexpr 数组。
但是,使用一些先进的技术和constexpr 函数,可以在 C 11 中实现类似的结果。具体方法如下:
#include <iostream> template<int N> struct A { constexpr A() : arr() { for (auto i = 0; i != N; ++i) arr[i] = i; } int arr[N]; }; int main() { constexpr auto a = A<4>(); for (auto x : a.arr) std::cout << x << '\n'; }
在此示例中,我们定义constexpr 函数 A
在 main 函数中,我们创建 A 的实例;并打印数组的值。由于数组是 constexpr,编译器可以在编译时确定其值,确保不会对数组执行运行时计算。
这种方法允许我们在 C 11 中创建 constexpr 数组,即使语法比该语言的更高版本更复杂。
以上是如何在 C 11 中创建包含 N 个元素的 Constexpr 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!