blob: 26f9641192a3d757c1651dcd8c8de6d7bd7d7c92 [file] [log] [blame]
[/
Copyright 2010 Neil Groves
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)
/]
[section:synopsis Synopsis]
``
namespace boost
{
//
// Single Pass Range metafunctions
//
template< class T, class Enabler=void >
struct range_iterator;
template< class T >
struct range_value;
template< class T >
struct range_reference;
template< class T >
struct range_pointer;
template< class T >
struct range_category;
//
// Forward Range metafunctions
//
template< class T >
struct range_difference;
//
// Bidirectional Range metafunctions
//
template< class T >
struct range_reverse_iterator;
//
// Single Pass Range functions
//
template< class T >
typename range_iterator<T>::type
begin( T& r );
template< class T >
typename range_iterator<const T>::type
begin( const T& r );
template< class T >
typename range_iterator<T>::type
end( T& r );
template< class T >
typename range_iterator<const T>::type
end( const T& r );
template< class T >
bool
empty( const T& r );
//
// Forward Range functions
//
template< class T >
typename range_difference<T>::type
distance( const T& r );
template< class T >
typename range_size<T>::type
size( const T& r );
//
// Bidirectional Range functions
//
template< class T >
typename range_reverse_iterator<T>::type
rbegin( T& r );
template< class T >
typename range_reverse_iterator<const T>::type
rbegin( const T& r );
template< class T >
typename range_reverse_iterator<T>::type
rend( T& r );
template< class T >
typename range_reverse_iterator<const T>::type
rend( const T& r );
//
// Special const Range functions
//
template< class T >
typename range_iterator<const T>::type
const_begin( const T& r );
template< class T >
typename range_iterator<const T>::type
const_end( const T& r );
template< class T >
typename range_reverse_iterator<const T>::type
const_rbegin( const T& r );
template< class T >
typename range_reverse_iterator<const T>::type
const_rend( const T& r );
//
// String utilities
//
template< class T >
iterator_range< ... see below ... >
as_literal( T& r );
template< class T >
iterator_range< ... see below ... >
as_literal( const T& r );
template< class T >
iterator_range< typename range_iterator<T>::type >
as_array( T& r );
template< class T >
iterator_range< typename range_iterator<const T>::type >
as_array( const T& r );
} // namespace 'boost'
``
[endsect]