/*============================================================================= Copyright (c) 2011-2019 Bolero MURAKAMI https://github.com/bolero-MURAKAMI/Sprout Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ #ifndef SPROUT_CONTAINER_RANGE_FUNCTIONS_FWD_HPP #define SPROUT_CONTAINER_RANGE_FUNCTIONS_FWD_HPP #include #include namespace sprout { // // begin // template SPROUT_CONSTEXPR typename sprout::container_traits::iterator begin(Container& cont); template SPROUT_CONSTEXPR typename sprout::container_traits::iterator begin(Container const& cont); // // end // template SPROUT_CONSTEXPR typename sprout::container_traits::iterator end(Container& cont); template SPROUT_CONSTEXPR typename sprout::container_traits::iterator end(Container const& cont); // // size // template SPROUT_CONSTEXPR typename sprout::container_traits::size_type size(Container const& cont); // // empty // template SPROUT_CONSTEXPR bool empty(Container const& cont); // // front // template SPROUT_CONSTEXPR typename sprout::container_traits::reference front(Container& cont); template SPROUT_CONSTEXPR typename sprout::container_traits::reference front(Container const& cont); // // back // template SPROUT_CONSTEXPR typename sprout::container_traits::reference back(Container& cont); template SPROUT_CONSTEXPR typename sprout::container_traits::reference back(Container const& cont); // // subscript_at // template SPROUT_CONSTEXPR typename sprout::container_traits::reference subscript_at(Container& cont, typename sprout::container_traits::size_type i); template SPROUT_CONSTEXPR typename sprout::container_traits::reference subscript_at(Container const& cont, typename sprout::container_traits::size_type i); // // at // template SPROUT_CONSTEXPR typename sprout::container_traits::reference at(Container& cont, typename sprout::container_traits::size_type i); template SPROUT_CONSTEXPR typename sprout::container_traits::reference at(Container const& cont, typename sprout::container_traits::size_type i); // // nth // template SPROUT_CONSTEXPR typename sprout::container_traits::iterator nth(Container& cont, typename sprout::container_traits::size_type i); template SPROUT_CONSTEXPR typename sprout::container_traits::iterator nth(Container const& cont, typename sprout::container_traits::size_type i); // // index_of // template SPROUT_CONSTEXPR typename sprout::container_traits::size_type index_of(Container& cont, typename sprout::container_traits::iterator p); template SPROUT_CONSTEXPR typename sprout::container_traits::size_type index_of(Container const& cont, typename sprout::container_traits::iterator p); // // data // template SPROUT_CONSTEXPR typename sprout::container_traits::pointer data(Container& cont); template SPROUT_CONSTEXPR typename sprout::container_traits::pointer data(Container const& cont); // // range_index_check // template SPROUT_CONSTEXPR typename sprout::container_traits::size_type range_index_check(Container const& cont, typename sprout::container_traits::size_type i); // // shrink_to_fit // template SPROUT_CXX14_CONSTEXPR void shrink_to_fit(Container&& cont); } // namespace sprout #endif // #ifndef SPROUT_CONTAINER_RANGE_FUNCTIONS_FWD_HPP