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 @@
-range_value<X>::type
T::value_type
boost::iterator_value<P::first_type>::type
boost::iterator_value<P::first_type>::type
A
Char
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&
Related concept
-
-
- boost::range_value
- Single Pass Range
-
boost::range_iterator
Single Pass Range
@@ -604,10 +598,6 @@ class=identifier>T& boost::range_const_iterator
Single Pass Range
-
- boost::range_difference
- Forward Range
-
boost::range_size
Forward Range
@@ -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& typedef T type;
};
- template< class T >
- struct range_difference< Foo::Pair<T> >
- {
- typedef typename std::iterator_traits<T>::difference_type type;
- };
-
template< class T >
struct range_size< Foo::Pair<T> >
{
- int static_assertion[ sizeof( std::size_t ) >=
- sizeof( typename range_difference< Foo::Pair<T> >::type ) ];
+
typedef std::size_t type;
};