Advertisement
Radfler

::array (std::array with multidimensionality support)

Apr 3rd, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include <array>
  2. #include <type_traits>
  3.  
  4. namespace details {
  5.  
  6.     template<typename ValueType, std::size_t... Dimensions>
  7.     struct make_multidimensional_array;
  8.  
  9.     template<typename ValueType, std::size_t Head, std::size_t... Tail>
  10.     struct make_multidimensional_array<ValueType, Head, Tail...> {
  11.         using nested = typename make_multidimensional_array<ValueType, Tail...>::type;
  12.         using type = std::array<nested, Head>;
  13.     };
  14.  
  15.     template<typename ValueType, std::size_t Head>
  16.     struct make_multidimensional_array<ValueType, Head> {
  17.         using type = std::array<ValueType, Head>;
  18.     };
  19.  
  20. }
  21.  
  22. template<typename Type, std::size_t... Dimensions>
  23. using array = typename details::make_multidimensional_array<Type, Dimensions...>::type;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement