#ifndef SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP #define SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP #include #include #include #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION # include # include # include # include # include #endif namespace sprout { #if SPROUT_USE_INDEX_ITERATOR_IMPLEMENTATION // // container_traits // template struct container_traits > : public sprout::detail::container_traits_default > { public: typedef sprout::index_iterator&> iterator; typedef sprout::index_iterator const&> const_iterator; }; // // begin // template inline typename sprout::container_traits >::iterator begin(sscrisk::cel::array& cont) { return typename sprout::container_traits >::iterator(cont, 0); } template inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator begin(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, 0); } // // cbegin // template inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cbegin(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, 0); } // // end // template inline typename sprout::container_traits >::iterator end(sscrisk::cel::array& cont) { return typename sprout::container_traits >::iterator(cont, cont.size()); } template inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator end(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, cont.size()); } // // cend // template inline SPROUT_CONSTEXPR typename sprout::container_traits >::const_iterator cend(sscrisk::cel::array const& cont) { return typename sprout::container_traits >::const_iterator(cont, cont.size()); } #endif } // namespace sprout #endif // #ifndef SPROUT_ADAPT_SSCRISK_CEL_ARRAY_HPP