Convenient way to declare 2D (or even higher dimension) arrays with std::array
You can use a type alias template: #include <array> #include <cstddef> template <class T, std::size_t x, std::size_t y> using Array2D = std::array<std::array<T, y>, x>; int main() { Array2D<int, 5, 3> arr; } You can also generalize it like so for any dimension: #include <array> #include <cstddef> template <class T, std::size_t size, std::size_t… sizes> struct ArrayHelper … Read more