From c7155a06e7c9b4f47c8c8879ccce8edcb7d89d4e Mon Sep 17 00:00:00 2001 From: Pauli Virtanen <pauli.t.virtanen@jyu.fi> Date: Wed, 3 Aug 2022 14:05:47 +0300 Subject: [PATCH] array: cleanup namespace --- src/array.hpp | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/array.hpp b/src/array.hpp index 65f9302..b8faf19 100644 --- a/src/array.hpp +++ b/src/array.hpp @@ -9,7 +9,6 @@ constexpr size_t Dynamic = SIZE_MAX; - /*! Array dimensions and strides: known at compile-time & dynamic */ template <size_t...> @@ -55,21 +54,24 @@ struct Shape<Dim0,Dims...> static constexpr std::array<size_t, ndim> dims() { return {Dim0, Dims...}; } }; -template <size_t I, typename Shape> -struct TailNth; - -template <typename Shape> -struct TailNth<0, Shape> +namespace detail { - using type = Shape; -}; - -template <size_t I, typename Shape> -struct TailNth -{ - using type = typename TailNth<I-1, typename Shape::Tail>::type; -}; - + /*! Extract Nth tail shape */ + template <size_t I, typename Shape> + struct TailNth; + + template <typename Shape> + struct TailNth<0, Shape> + { + using type = Shape; + }; + + template <size_t I, typename Shape> + struct TailNth + { + using type = typename TailNth<I-1, typename Shape::Tail>::type; + }; +} /*! Simple data-by-reference strided array class a la Fortran */ @@ -193,7 +195,7 @@ public: } template <typename... Idx> - Array<Scalar, typename TailNth<sizeof...(Idx), Shape>::type > part(Idx... idxs) const + Array<Scalar, typename detail::TailNth<sizeof...(Idx), Shape>::type > part(Idx... idxs) const { constexpr size_t nidxs = sizeof...(idxs); static_assert(nidxs < Shape::ndim, -- GitLab