#include namespace nd_array { template struct NDArrayFactory; template struct NDArrayFactory { using Array = std::array::Array, N0>; }; template struct NDArrayFactory { using Array = std::array; }; } // namespace nd_array template using NDArray = typename nd_array::NDArrayFactory::Array;