Line data Source code
1 : // Boost.Range library 2 : // 3 : // Copyright Thorsten Ottosen 2003-2006. Use, modification and 4 : // distribution is subject to the Boost Software License, Version 5 : // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 : // http://www.boost.org/LICENSE_1_0.txt) 7 : // 8 : // For more information, see http://www.boost.org/libs/range/ 9 : // 10 : 11 : #ifndef BOOST_RANGE_DISTANCE_HPP 12 : #define BOOST_RANGE_DISTANCE_HPP 13 : 14 : #if defined(_MSC_VER) 15 : # pragma once 16 : #endif 17 : 18 : #include <boost/iterator/distance.hpp> 19 : #include <boost/range/begin.hpp> 20 : #include <boost/range/end.hpp> 21 : #include <boost/range/difference_type.hpp> 22 : 23 : namespace boost 24 : { 25 : 26 : namespace range_distance_adl_barrier 27 : { 28 : template< class T > 29 : inline BOOST_CXX14_CONSTEXPR BOOST_DEDUCED_TYPENAME range_difference<T>::type 30 0 : distance( const T& r ) 31 : { 32 0 : return boost::iterators::distance( boost::begin( r ), boost::end( r ) ); 33 : } 34 : } 35 : 36 : using namespace range_distance_adl_barrier; 37 : 38 : } // namespace 'boost' 39 : 40 : #endif