mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-29 20:17:32 +02:00
prelude to iterator_facade and sequence_facade
[SVN r35316]
This commit is contained in:
@ -119,14 +119,14 @@
|
||||
<span class="keyword">struct</span> <span class="identifier">single_pass_sequence_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">incrementable_sequence_tag</span> <span class="special">{};</span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">forward_sequence_tag</span>
|
||||
<span class="keyword">struct</span> <span class="identifier">forward_traversal_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">single_pass_sequence_tag</span> <span class="special">{};</span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">bidirectional_sequence_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">forward_sequence_tag</span> <span class="special">{};</span>
|
||||
<span class="keyword">struct</span> <span class="identifier">bidirectional_traversal_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">forward_traversal_tag</span> <span class="special">{};</span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">random_access_sequence_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">bidirectional_sequence_tag</span> <span class="special">{};</span>
|
||||
<span class="keyword">struct</span> <span class="identifier">random_access_traversal_tag</span>
|
||||
<span class="special">:</span> <span class="identifier">bidirectional_traversal_tag</span> <span class="special">{};</span>
|
||||
<span class="special">}}</span>
|
||||
</pre>
|
||||
<p>
|
||||
@ -157,8 +157,8 @@
|
||||
<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_base_of</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">category_of</span><span class="special"><</span><a href="../sequences/containers/list.html" title="list"><tt class="computeroutput"><span class="identifier">list</span></tt></a><span class="special"><></span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">list_category</span><span class="special">;</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">category_of</span><span class="special"><</span><a href="../sequences/containers/vector.html" title="vector"><tt class="computeroutput"><span class="identifier">vector</span></tt></a><span class="special"><></span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">vector_category</span><span class="special">;</span>
|
||||
<span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span> <span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">forward_sequence_tag</span><span class="special">,</span> <span class="identifier">list_category</span><span class="special">></span> <span class="special">));</span>
|
||||
<span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span> <span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">random_access_sequence_tag</span><span class="special">,</span> <span class="identifier">vector_category</span><span class="special">></span> <span class="special">));</span>
|
||||
<span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span> <span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">forward_traversal_tag</span><span class="special">,</span> <span class="identifier">list_category</span><span class="special">></span> <span class="special">));</span>
|
||||
<span class="identifier">BOOST_MPL_ASSERT</span><span class="special">((</span> <span class="identifier">is_base_of</span><span class="special"><</span><span class="identifier">random_access_traversal_tag</span><span class="special">,</span> <span class="identifier">vector_category</span><span class="special">></span> <span class="special">));</span>
|
||||
</pre>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
|
@ -219,14 +219,14 @@ For Sequences, the return type is derived from one of:
|
||||
struct single_pass_sequence_tag
|
||||
: incrementable_sequence_tag {};
|
||||
|
||||
struct forward_sequence_tag
|
||||
struct forward_traversal_tag
|
||||
: single_pass_sequence_tag {};
|
||||
|
||||
struct bidirectional_sequence_tag
|
||||
: forward_sequence_tag {};
|
||||
struct bidirectional_traversal_tag
|
||||
: forward_traversal_tag {};
|
||||
|
||||
struct random_access_sequence_tag
|
||||
: bidirectional_sequence_tag {};
|
||||
struct random_access_traversal_tag
|
||||
: bidirectional_traversal_tag {};
|
||||
}}
|
||||
|
||||
And optionally from:
|
||||
@ -248,8 +248,8 @@ __sequence__ or __iterator__.
|
||||
using boost::is_base_of;
|
||||
typedef traits::category_of<__list__<> >::type list_category;
|
||||
typedef traits::category_of<__vector__<> >::type vector_category;
|
||||
BOOST_MPL_ASSERT(( is_base_of<forward_sequence_tag, list_category> ));
|
||||
BOOST_MPL_ASSERT(( is_base_of<random_access_sequence_tag, vector_category> ));
|
||||
BOOST_MPL_ASSERT(( is_base_of<forward_traversal_tag, list_category> ));
|
||||
BOOST_MPL_ASSERT(( is_base_of<random_access_traversal_tag, vector_category> ));
|
||||
|
||||
[endsect]
|
||||
|
||||
|
Reference in New Issue
Block a user