diff --git a/src/TNL/Containers/ndarray/SizesHolder.h b/src/TNL/Containers/ndarray/SizesHolder.h index 69a032c7f8d42f4248033584bacbc79eb2ac3ef6..5b6e52f5fa1deccbe13a51a811fca1f83906377b 100644 --- a/src/TNL/Containers/ndarray/SizesHolder.h +++ b/src/TNL/Containers/ndarray/SizesHolder.h @@ -123,6 +123,26 @@ protected: } }; +template< std::size_t dimension > +struct SizesHolderStaticSizePrinter +{ + template< typename SizesHolder > + static void exec( std::ostream& str, const SizesHolder& holder ) + { + str << holder.template getStaticSize< dimension >() << ", "; + } +}; + +template< std::size_t dimension > +struct SizesHolderSizePrinter +{ + template< typename SizesHolder > + static void exec( std::ostream& str, const SizesHolder& holder ) + { + str << holder.template getSize< dimension >() << ", "; + } +}; + } // namespace __ndarray_impl @@ -181,36 +201,14 @@ public: }; -template< std::size_t dimension > -struct SizesHolderStaticSizePrinter -{ - template< typename Index, - std::size_t... sizes > - static void exec( std::ostream& str, const SizesHolder< Index, sizes... >& holder ) - { - str << holder.template getStaticSize< dimension >() << ", "; - } -}; - -template< std::size_t dimension > -struct SizesHolderSizePrinter -{ - template< typename Index, - std::size_t... sizes > - static void exec( std::ostream& str, const SizesHolder< Index, sizes... >& holder ) - { - str << holder.template getSize< dimension >() << ", "; - } -}; - template< typename Index, std::size_t... sizes > std::ostream& operator<<( std::ostream& str, const SizesHolder< Index, sizes... >& holder ) { str << "SizesHolder< "; - TemplateStaticFor< std::size_t, 0, sizeof...(sizes) - 1, SizesHolderStaticSizePrinter >::execHost( str, holder ); + TemplateStaticFor< std::size_t, 0, sizeof...(sizes) - 1, __ndarray_impl::SizesHolderStaticSizePrinter >::execHost( str, holder ); str << holder.template getStaticSize< sizeof...(sizes) - 1 >() << " >( "; - TemplateStaticFor< std::size_t, 0, sizeof...(sizes) - 1, SizesHolderSizePrinter >::execHost( str, holder ); + TemplateStaticFor< std::size_t, 0, sizeof...(sizes) - 1, __ndarray_impl::SizesHolderSizePrinter >::execHost( str, holder ); str << holder.template getSize< sizeof...(sizes) - 1 >() << " )"; return str; }