aboutsummaryrefslogtreecommitdiff
path: root/nd_array.h
blob: b7e7cdf825e875a0b240234f197315204954ae2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <array>

namespace nd_array {

template <typename T, int... NS> struct NDArrayFactory;

template <typename T, int N0, int... NS> struct NDArrayFactory<T, N0, NS...> {
  using Array = std::array<typename NDArrayFactory<T, NS...>::Array, N0>;
};

template <typename T, int N0> struct NDArrayFactory<T, N0> {
  using Array = std::array<T, N0>;
};

} // namespace nd_array

template <typename T, int... NS>
using NDArray = typename nd_array::NDArrayFactory<T, NS...>::Array;