#include <array>
using std::array;
constexpr auto d1=2;
constexpr auto d2=3;
constexpr auto d3=4;
// stacked std::array
using arr_t = array<int,d1>;
using arr2d_t = array<arr_t,d2>;
using arr3d_t = array<arr2d_t,d3>;
constexpr arr3d_t arr1 = {{
{{ {1,2}, {3,4}, {5,6} }},
{{ {1,2}, {3,4}, {5,6} }},
{{ {1,2}, {3,4}, {5,6} }},
{{ {1,2}, {3,4}, {5,6} }}
}};
// built-in array
using carr3d_t = int[d3][d2][d1];
constexpr carr3d_t arr2 = {
{ {1,2}, {3,4}, {5,6} },
{ {1,2}, {3,4}, {5,6} },
{ {1,2}, {3,4}, {5,6} },
{ {1,2}, {3,4}, {5,6} }
};
는 : {{
이 가장 낮은 차원에서 제외해야하는 이유 스택 표준을 사용하는 경우누적 된 std :: array를 사용하여 다차원 배열 선언시 "이중 중괄호"가 필요한 이유는 무엇입니까? 하나는 이와 같은 단일 치아 교정기의 쌍 모든 중괄호 사업을 멀리 얻을 수 있지만
// getaway with one-dimensional declaration
constexpr arr3d_t arr3 = {
1,2, 3,4, 5,6,
1,2, 3,4, 5,6,
1,2, 3,4, 5,6,
1,2, 3,4, 5,6
};
constexpr carr3d_t arr4 = {
1,2, 3,4, 5,6,
1,2, 3,4, 5,6,
1,2, 3,4, 5,6,
1,2, 3,4, 5,6
};
내가 좋아하는 것
는 알고 ::정렬?
나는 clang과 gcc 모두 시도하지만 컴파일되지 않습니다. 이것은 그들이 모두 std :: array case에 대한 C++ 14 brace elision을 아직 선택하지 않았다는 것을 의미합니까? [godbolt.org/g/YWAbHo](https://gcc.godbolt.org/g/YWAbHo) – sandthorn