From 99378979c2ff0d48274f4ed1c92ebf18a3debc97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20J=C3=B8rgen=20Ottosen?= Date: Mon, 31 Oct 2005 23:11:00 +0000 Subject: [PATCH] *** empty log message *** [SVN r31520] --- doc/boost_range.html | 80 ++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 51 deletions(-) diff --git a/doc/boost_range.html b/doc/boost_range.html index b10714c..303f9d6 100644 --- a/doc/boost_range.html +++ b/doc/boost_range.html @@ -1,7 +1,7 @@ - Boost.Range Range Implementation + Boost.Range Reference @@ -256,7 +256,7 @@ class=identifier>T& range_value<X>::type T::value_type
- boost::iterator_value<P::first_type>::type
+ boost::iterator_value<P::first_type>::type
A
Char compile time @@ -351,25 +351,28 @@ class=identifier>T
& begin(x) range_result_iterator<X>::type - t.begin()
- p.first
- a
- s
- boost_range_begin(x) otherwise + + p.first if p is of type std::pair<T>
+ a if a is an array
+ s if s is a string literal
+ boost_range_begin(x) if that expression would invoke a function found by ADL
+ t.begin() otherwise + constant time end(x) range_result_iterator<X>::type - t.end()
- p.second
- a + sz
- s + std::char_traits<X>::length( s ) if X is Char* + + p.second if p is of type std::pair<T>
+ a + sz if a is an array of size sz
+ s + std::char_traits<X>::length( s ) if s is a Char*
- s + sz - 1 if X is Char[sz] + s + sz - 1 if s is a string literal of size sz
- boost_range_end(x) otherwise + boost_range_end(x) if that expression would invoke a function found by ADL
+ t.end() otherwise linear if X is Char*
@@ -389,11 +392,12 @@ class=identifier>T
& size(x) range_size<X>::type - t.size()
- std::distance(p.first,p.second)
- sz
- end(s) - s
- boost_range_size(x) otherwise + + std::distance(p.first,p.second) if p is of type std::pair<T>
+ sz if a is an array of size sz
+ end(s) - s if s is a string literal or a Char*
+ boost_range_size(x) if that expression would invoke a function found by ADL
+ t.size() otherwise linear if X is Char*
or if std::distance() is linear @@ -461,7 +465,10 @@ class=identifier>T
& Method 1: provide member functions and nested types
  • Method 2: provide free-standing functions and specialize metafunctions
  • - + + +

    Method 1: provide member functions and nested types

    @@ -513,10 +520,6 @@ class=identifier>T
    & Related concept - - value_type - Single Pass Range - iterator Single Pass Range @@ -525,10 +528,6 @@ class=identifier>T& const_iterator Single Pass Range - - difference_type - Forward Range - size_type Forward Range @@ -572,7 +571,7 @@ class=identifier>T& Single Pass Range - boos_range_size(x) + boost_range_size(x) Forward Range @@ -582,7 +581,7 @@ class=identifier>T&

    - You must also specialize 3-5 metafunctions for your type X: + You must also specialize 3 metafunctions for your type X:

    @@ -591,11 +590,6 @@ class=identifier>T& - - - - - @@ -604,10 +598,6 @@ class=identifier>T& boost::range_const_iterator - - - - @@ -643,11 +633,6 @@ class=identifier>T& - template< class T > - struct range_value< Foo::Pair<T> > - { - typedef typename std::iterator_traits<T>::value_type type; - }; template< class T > struct range_iterator< Foo::Pair<T> > @@ -666,17 +651,10 @@ class=identifier>T& typedefTtype;}; - template<classT> - structrange_difference<Foo::Pair<T>> - { - typedeftypenamestd::iterator_traits<T>::difference_typetype; - }; - template<classT>structrange_size<Foo::Pair<T>>{ - intstatic_assertion[sizeof(std::size_t)>= - sizeof(typenamerange_difference<Foo::Pair<T>>::type)]; + typedefstd::size_ttype;};
    Related concept
    boost::range_valueSingle Pass Range
    boost::range_iterator Single Pass RangeSingle Pass Range
    boost::range_differenceForward Range
    boost::range_size Forward Range