#ifndef SPROUT_CONTAINER_END_HPP #define SPROUT_CONTAINER_END_HPP #include #include #include namespace sprout { // // end // template inline typename sprout::container_traits::iterator end(Container& cont) { return cont.end(); } template inline typename sprout::container_traits::iterator end(T (& arr)[N]) { return arr + N; } template SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator end(Container const& cont) { return cont.end(); } template SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator end(T const (& arr)[N]) { return arr + N; } // // cend // template SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cend(Container const& cont) { return cont.end(); } template SPROUT_CONSTEXPR inline typename sprout::container_traits::const_iterator cend(T const (& arr)[N]) { return arr + N; } } // namespace sprout #endif // #ifndef SPROUT_CONTAINER_END_HPP