mirror of
https://github.com/boostorg/range.git
synced 2025-07-30 04:47:25 +02:00
Merge.
[SVN r42905]
This commit is contained in:
@ -493,7 +493,7 @@ class=identifier>T</span><span class=special>& </span><span class=identifier
|
|||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<code>as_literal()</code> can be used <i>internally</i> in string
|
<code>as_literal()</code> can be used <i>internally</i> in string
|
||||||
algorithm librararies to such that arrays of characters are
|
algorithm librararies such that arrays of characters are
|
||||||
handled correctly.
|
handled correctly.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
@ -18,10 +18,10 @@
|
|||||||
|
|
||||||
<h2 >History and Acknowledgement</h2><a name="History" ></a>
|
<h2 >History and Acknowledgement</h2><a name="History" ></a>
|
||||||
<p >
|
<p >
|
||||||
The library have been under way for a long time. Dietmar K<>hl originally
|
The library was under way for a long time. Dietmar K<>hl originally intended
|
||||||
intended to submit an <code >array_traits</code> class template which
|
to submit an <code >array_traits</code> class template which had most of
|
||||||
had most of the functionality present now, but only for arrays and standard
|
the functionality present now, but only for arrays and standard containers.
|
||||||
containers.
|
I believe this was back in 2001 or 2002.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
@ -63,8 +63,7 @@ free-standing functions so syntactic and/or semantic differences can be removed.
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>
|
||||||
<p >
|
<p > Below is given a small example (the complete example can be found <a
|
||||||
Below are given a small example (the complete example can be found <a
|
|
||||||
href="../test/algorithm_example.cpp" target="_self" >here</a>): <blockquote>
|
href="../test/algorithm_example.cpp" target="_self" >here</a>): <blockquote>
|
||||||
<pre >
|
<pre >
|
||||||
<span class=comment>
|
<span class=comment>
|
||||||
|
@ -35,7 +35,7 @@ href="http://boost.sourceforge.net/regression-logs/developer/range.html">here</a
|
|||||||
</p>
|
</p>
|
||||||
<p >
|
<p >
|
||||||
Notice also that some compilers cannot do function template ordering properly.
|
Notice also that some compilers cannot do function template ordering properly.
|
||||||
In that case one must rely of <a
|
In that case one must rely on <a
|
||||||
href="boost_range.html#range_iterator"><code >range_iterator</code></a>
|
href="boost_range.html#range_iterator"><code >range_iterator</code></a>
|
||||||
and a single function definition instead of overloaded versions for const and
|
and a single function definition instead of overloaded versions for const and
|
||||||
non-const arguments.
|
non-const arguments.
|
||||||
|
@ -33,11 +33,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
The <code>iterator_range</code> class is templated on an
|
The <code>iterator_range</code> class is templated on a <a
|
||||||
<a href="../../iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators">Forward
|
href="../../iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators">Forward
|
||||||
Traversal Iterator</a> and should be used whenever fairly general code is needed.
|
Traversal Iterator</a> and should be used whenever fairly general code is needed.
|
||||||
The <code>sub_range</code> class is templated on an <a href="range.html#forward_range">Forward
|
The <code>sub_range</code> class is templated on a <a
|
||||||
Range</a> and it is less general, but a bit easier to use since its template
|
href="range.html#forward_range">Forward Range</a> and it is less general,
|
||||||
|
but a bit easier to use since its template
|
||||||
argument is easier to specify. The biggest difference is, however, that a
|
argument is easier to specify. The biggest difference is, however, that a
|
||||||
<code>sub_range</code> can propagate constness because it knows what a
|
<code>sub_range</code> can propagate constness because it knows what a
|
||||||
corresponding <code>const_iterator</code> is. </p>
|
corresponding <code>const_iterator</code> is. </p>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
# pragma once
|
# pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
#include <boost/range/detail/as_literal.hpp>
|
#include <boost/range/detail/as_literal.hpp>
|
||||||
#else
|
#else
|
||||||
|
|
||||||
@ -116,14 +116,14 @@ namespace boost
|
|||||||
|
|
||||||
|
|
||||||
template< class Char, std::size_t sz >
|
template< class Char, std::size_t sz >
|
||||||
inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
|
inline iterator_range<const Char*> as_literal( const Char (&arr)[sz] )
|
||||||
{
|
{
|
||||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
|
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) && __BORLANDC__ >= 0x590
|
||||||
return boost::make_iterator_range<const Char*>( arr, arr + sz - 1 );
|
return boost::make_iterator_range<const Char*>( arr, arr + sz - 1 );
|
||||||
#else
|
#else
|
||||||
return boost::make_iterator_range( arr, arr + sz - 1 );
|
return boost::make_iterator_range( arr, arr + sz - 1 );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
Reference in New Issue
Block a user