| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | // Boost.Range library////  Copyright Thorsten Ottosen 2003-2004. Use, modification and//  distribution is subject to 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)//// For more information, see http://www.boost.org/libs/range///#ifndef BOOST_RANGE_REND_HPP#define BOOST_RANGE_REND_HPP#if defined(_MSC_VER)# pragma once#endif#include <boost/range/begin.hpp>#include <boost/range/reverse_iterator.hpp>namespace boost{#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERINGtemplate< class C >inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::typerend( C& c ){    return BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( boost::begin( c ) );}#elsetemplate< class C >inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::typerend( C& c ){    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type               iter_type;    return iter_type( boost::begin( c ) );}template< class C >inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::typerend( const C& c ){    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type        iter_type;    return iter_type( boost::begin( c ) );}#endiftemplate< class T >inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::typeconst_rend( const T& r ){    return boost::rend( r );}} // namespace 'boost'#endif
 |