c++ - 在 C++11 中创建 N 元素 constexpr 数组

标签 c++ c++11 constexpr array-initialization

你好我正在学习 C++11,我想知道如何制作一个 constexpr 0 到 n 数组,例如:

n = 5;

int array[] = {0 ... n};

所以数组可能是{0, 1, 2, 3, 4, 5}

最佳答案

在 C++14 中,可以使用 constexpr 构造函数和循环轻松完成:

#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';
}

关于c++ - 在 C++11 中创建 N 元素 constexpr 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35101817/

相关文章:

c++ - 我如何正确使用 pipe、fork 和 execv 来启动辅助程序并与之交互?

c++ - 如何为用户定义的类型专门化 std::hash<T>?

c++ - 使用派生类的静态 constexpr 数据成员初始化基类的静态 constexpr 数据成员

c++ - 在此特定情况下使用 unique_ptr 的 char 数组

c++ - 如何编写 constexpr 交换函数来更改整数的字节顺序?

c++ - 在编译时初始化 c++ std::bitset

c++ - "Socket operation on non-socket"错误由于奇怪的语法

c++ - 创建函数来访问类变量是一种好习惯吗?

c# - .NET 并发集合可以用于 x32 到 x64 的进程间通信吗?

c++ - shared_ptr 析构函数、复制和不完整类型