Comment by stackghost
4 hours ago
>How do you make an std::array of a given type? Wrap the existing type in an extra layer of std::array, we all know this
huh? where is the extra layer?
std::array<int, 5> array_of_ints = { 1, 2, 3, 4, 5 };
>How do you make a C-array of a given type? Oh boy, "prepend the array specifier before the list of existing array specifiers"
?
int c_style_array[5] = {2, 3, 5, 7, 11};
I assume he means multi-dimensional arrays:
But the C-style array is more readable, so I am not sure what the complaint really is about.
No, I think he means that for any given type, you can wrap it in an array the same way. Your example is demobstating that it even works recursively, but it works in the simple case too by wrapping "int" in an array to get an array of ints. There's no need to jump back and forth between each side when adding new layers (which gets described as a "spiral", but in a single line of code, I'd argue that it's really just jumping back and forth, and that's why it's annoying to people like the parent commenter and I)
If I would add another array, it would look like:
int c_style_array[2][5][3];
There is also no jumping back and forth. C declarations are also recursively constructed. One can complain about the irregularity of pointers syntax.
The "existing type" in your example is int, the "extra layer" is the array type that "wraps" it
I guess? That's pretty confusing wording, and a bizarre rant if so.