renamed ftag to fusion_tag

[SVN r35247]
This commit is contained in:
Joel de Guzman
2006-09-21 12:25:27 +00:00
parent 1a6f4f948c
commit 425030e0eb
33 changed files with 44 additions and 44 deletions

View File

@ -154,7 +154,7 @@ To understand how `value_of_impl` is used by the library we will look at the imp
struct __value_of__ struct __value_of__
{ {
typedef typename typedef typename
extension::value_of_impl<typename Iterator::ftag>:: extension::value_of_impl<typename Iterator::fusion_tag>::
template apply<Iterator>::type template apply<Iterator>::type
type; type;
}; };
@ -209,7 +209,7 @@ To see how `deref_impl` is used, lets have a look at the implementation of __der
struct __deref__ struct __deref__
{ {
typedef typename typedef typename
deref_impl<typename Iterator::ftag>:: deref_impl<typename Iterator::fusion_tag>::
template apply<Iterator>::type template apply<Iterator>::type
type; type;
}; };
@ -220,7 +220,7 @@ To see how `deref_impl` is used, lets have a look at the implementation of __der
__deref__(Iterator const& i) __deref__(Iterator const& i)
{ {
typename __result_of_deref__<Iterator>::type result = typename __result_of_deref__<Iterator>::type result =
extension::deref_impl<typename Iterator::ftag>:: extension::deref_impl<typename Iterator::fusion_tag>::
template apply<Iterator>::call(i); template apply<Iterator>::call(i);
return result; return result;
} }

View File

@ -242,7 +242,7 @@
<span class="keyword">struct</span> <a href="iterators/metafunctions/value_of.html" title="value_of"><tt class="computeroutput"><span class="identifier">value_of</span></tt></a> <span class="keyword">struct</span> <a href="iterators/metafunctions/value_of.html" title="value_of"><tt class="computeroutput"><span class="identifier">value_of</span></tt></a>
<span class="special">{</span> <span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="keyword">typedef</span> <span class="keyword">typename</span>
<span class="identifier">extension</span><span class="special">::</span><span class="identifier">value_of_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">ftag</span><span class="special">&gt;::</span> <span class="identifier">extension</span><span class="special">::</span><span class="identifier">value_of_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">fusion_tag</span><span class="special">&gt;::</span>
<span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">type</span><span class="special">;</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span> <span class="special">};</span>
@ -305,7 +305,7 @@
<span class="keyword">struct</span> <a href="iterators/functions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">deref</span></tt></a> <span class="keyword">struct</span> <a href="iterators/functions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">deref</span></tt></a>
<span class="special">{</span> <span class="special">{</span>
<span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="keyword">typedef</span> <span class="keyword">typename</span>
<span class="identifier">deref_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">ftag</span><span class="special">&gt;::</span> <span class="identifier">deref_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">fusion_tag</span><span class="special">&gt;::</span>
<span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">type</span><span class="special">;</span> <span class="identifier">type</span><span class="special">;</span>
<span class="special">};</span> <span class="special">};</span>
@ -316,7 +316,7 @@
<a href="iterators/functions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">deref</span></tt></a><span class="special">(</span><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">)</span> <a href="iterators/functions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">deref</span></tt></a><span class="special">(</span><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="identifier">i</span><span class="special">)</span>
<span class="special">{</span> <span class="special">{</span>
<span class="keyword">typename</span> <a href="iterators/metafunctions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">deref</span></tt></a><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">result</span> <span class="special">=</span> <span class="keyword">typename</span> <a href="iterators/metafunctions/deref.html" title="deref"><tt class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">deref</span></tt></a><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">result</span> <span class="special">=</span>
<span class="identifier">extension</span><span class="special">::</span><span class="identifier">deref_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">ftag</span><span class="special">&gt;::</span> <span class="identifier">extension</span><span class="special">::</span><span class="identifier">deref_impl</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">::</span><span class="identifier">fusion_tag</span><span class="special">&gt;::</span>
<span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">i</span><span class="special">);</span> <span class="keyword">template</span> <span class="identifier">apply</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">i</span><span class="special">);</span>
<span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span> <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
<span class="special">}</span> <span class="special">}</span>

View File

@ -34,7 +34,7 @@
The purpose of the tag is to enable <a href="../notes.html#fusion.notes.tag_dispatching"><span class="emphasis"><em>tag The purpose of the tag is to enable <a href="../notes.html#fusion.notes.tag_dispatching"><span class="emphasis"><em>tag
dispatching</em></span></a> from <a href="../sequences/intrinsics.html" title="Intrinsics">Intrinsic</a> dispatching</em></span></a> from <a href="../sequences/intrinsics.html" title="Intrinsics">Intrinsic</a>
functions to implementations appropriate for the type. The default implementation functions to implementations appropriate for the type. The default implementation
of <tt class="computeroutput"><span class="identifier">tag_of</span></tt> returns <tt class="computeroutput"><span class="identifier">T</span><span class="special">::</span><span class="identifier">ftag</span></tt> of <tt class="computeroutput"><span class="identifier">tag_of</span></tt> returns <tt class="computeroutput"><span class="identifier">T</span><span class="special">::</span><span class="identifier">fusion_tag</span></tt>
for a given type <tt class="computeroutput"><span class="identifier">T</span></tt>, if such for a given type <tt class="computeroutput"><span class="identifier">T</span></tt>, if such
a member typedef exists. a member typedef exists.
</p> </p>

View File

@ -114,7 +114,7 @@ may be specialized to accomodate clients providing Fusion conforming views.
All conforming Fusion sequences and iterators have an associated tag type. All conforming Fusion sequences and iterators have an associated tag type.
The purpose of the tag is to enable __tag_dispatching__ from __intrinsic__ The purpose of the tag is to enable __tag_dispatching__ from __intrinsic__
functions to implementations appropriate for the type. The default implementation functions to implementations appropriate for the type. The default implementation
of `tag_of` returns `T::ftag` for a given type `T`, if such a member typedef exists. of `tag_of` returns `T::fusion_tag` for a given type `T`, if such a member typedef exists.
This metafunction may be specialized to accomodate clients providing Fusion conforming sequences. This metafunction may be specialized to accomodate clients providing Fusion conforming sequences.

View File

@ -34,7 +34,7 @@ namespace boost { namespace fusion {
BOOST_STATIC_ASSERT(Pos >=0 && Pos < 3); BOOST_STATIC_ASSERT(Pos >=0 && Pos < 3);
typedef Struct struct_type; typedef Struct struct_type;
typedef mpl::int_<Pos> index; typedef mpl::int_<Pos> index;
typedef example_struct_iterator_tag ftag; typedef example_struct_iterator_tag fusion_tag;
typedef random_access_traversal_tag category; typedef random_access_traversal_tag category;
example_struct_iterator(Struct& str) example_struct_iterator(Struct& str)

View File

@ -38,7 +38,7 @@ namespace boost { namespace fusion {
BOOST_MPL_ASSERT_RELATION(Pos,<=,std::size_t(Array::static_size)); BOOST_MPL_ASSERT_RELATION(Pos,<=,std::size_t(Array::static_size));
typedef mpl::size_t<Pos> index; typedef mpl::size_t<Pos> index;
typedef array_iterator_tag ftag; typedef array_iterator_tag fusion_tag;
typedef random_access_traversal_tag category; typedef random_access_traversal_tag category;
typedef Array array_type; typedef Array array_type;
typedef array_iterator< typedef array_iterator<

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct mpl_iterator struct mpl_iterator
: iterator_base<mpl_iterator<Iterator> > : iterator_base<mpl_iterator<Iterator> >
{ {
typedef mpl_iterator_tag ftag; typedef mpl_iterator_tag fusion_tag;
typedef typename detail::mpl_iterator_category< typedef typename detail::mpl_iterator_category<
typename Iterator::category>::type typename Iterator::category>::type
category; category;

View File

@ -32,7 +32,7 @@ namespace boost { namespace fusion
: iterator_base<std_pair_iterator<Pair, N> > : iterator_base<std_pair_iterator<Pair, N> >
{ {
typedef mpl::int_<N> index; typedef mpl::int_<N> index;
typedef std_pair_iterator_tag ftag; typedef std_pair_iterator_tag fusion_tag;
typedef random_access_traversal_tag category; typedef random_access_traversal_tag category;
typedef std_pair_iterator_identity< typedef std_pair_iterator_identity<
typename add_const<Pair>::type, N> identity; typename add_const<Pair>::type, N> identity;

View File

@ -32,7 +32,7 @@ namespace boost { namespace fusion
: iterator_base<std_pair_iterator<Pair, N> > : iterator_base<std_pair_iterator<Pair, N> >
{ {
typedef mpl::int_<N> index; typedef mpl::int_<N> index;
typedef std_pair_iterator_tag ftag; typedef std_pair_iterator_tag fusion_tag;
typedef random_access_traversal_tag category; typedef random_access_traversal_tag category;
typedef std_pair_iterator_identity< typedef std_pair_iterator_identity<
typename add_const<Pair>::type, N> identity; typename add_const<Pair>::type, N> identity;

View File

@ -36,7 +36,7 @@ namespace boost { namespace fusion
struct nil : sequence_base<nil> struct nil : sequence_base<nil>
{ {
typedef mpl::int_<0> size; typedef mpl::int_<0> size;
typedef cons_tag ftag; typedef cons_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::false_ is_view; typedef mpl::false_ is_view;
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
@ -59,7 +59,7 @@ namespace boost { namespace fusion
struct cons : sequence_base<cons<Car, Cdr> > struct cons : sequence_base<cons<Car, Cdr> >
{ {
typedef mpl::int_<Cdr::size::value+1> size; typedef mpl::int_<Cdr::size::value+1> size;
typedef cons_tag ftag; typedef cons_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::false_ is_view; typedef mpl::false_ is_view;
typedef forward_sequence_tag category; typedef forward_sequence_tag category;

View File

@ -29,7 +29,7 @@ namespace boost { namespace fusion
template <typename Cons = nil> template <typename Cons = nil>
struct cons_iterator : iterator_base<cons_iterator<Cons> > struct cons_iterator : iterator_base<cons_iterator<Cons> >
{ {
typedef cons_iterator_tag ftag; typedef cons_iterator_tag fusion_tag;
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
typedef Cons cons_type; typedef Cons cons_type;
typedef cons_iterator_identity< typedef cons_iterator_identity<
@ -45,7 +45,7 @@ namespace boost { namespace fusion
struct nil_iterator : iterator_base<nil_iterator> struct nil_iterator : iterator_base<nil_iterator>
{ {
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
typedef cons_iterator_tag ftag; typedef cons_iterator_tag fusion_tag;
typedef nil cons_type; typedef nil cons_type;
typedef cons_iterator_identity< typedef cons_iterator_identity<
add_const<nil>::type> add_const<nil>::type>

View File

@ -32,7 +32,7 @@ namespace boost { namespace fusion
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)> template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, typename T)>
struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> > struct map : sequence_base<map<BOOST_PP_ENUM_PARAMS(FUSION_MAX_MAP_SIZE, T)> >
{ {
typedef map_tag ftag; typedef map_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
typedef mpl::false_ is_view; typedef mpl::false_ is_view;

View File

@ -31,7 +31,7 @@ namespace boost { namespace fusion
template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, typename T)> template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, typename T)>
struct set : sequence_base<set<BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)> > struct set : sequence_base<set<BOOST_PP_ENUM_PARAMS(FUSION_MAX_SET_SIZE, T)> >
{ {
typedef set_tag ftag; typedef set_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
typedef mpl::false_ is_view; typedef mpl::false_ is_view;

View File

@ -81,7 +81,7 @@
typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> this_type; typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> this_type;
typedef BOOST_PP_CAT(vector_data, N)<this_type, BOOST_PP_ENUM_PARAMS(N, T)> base_type; typedef BOOST_PP_CAT(vector_data, N)<this_type, BOOST_PP_ENUM_PARAMS(N, T)> base_type;
typedef mpl::BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> types; typedef mpl::BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> types;
typedef vector_tag ftag; typedef vector_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::false_ is_view; typedef mpl::false_ is_view;
typedef random_access_sequence_tag category; typedef random_access_sequence_tag category;

View File

@ -40,7 +40,7 @@ namespace boost { namespace fusion
public: public:
typedef typename vector_n::types types; typedef typename vector_n::types types;
typedef typename vector_n::ftag ftag; typedef typename vector_n::fusion_tag fusion_tag;
typedef typename vector_n::tag tag; typedef typename vector_n::tag tag;
typedef typename vector_n::size size; typedef typename vector_n::size size;
typedef typename vector_n::category category; typedef typename vector_n::category category;

View File

@ -43,7 +43,7 @@ namespace boost { namespace fusion
struct vector0 : sequence_base<vector0> struct vector0 : sequence_base<vector0>
{ {
typedef mpl::vector0<> types; typedef mpl::vector0<> types;
typedef vector_tag ftag; typedef vector_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::false_ is_view; typedef mpl::false_ is_view;
typedef random_access_sequence_tag category; typedef random_access_sequence_tag category;

View File

@ -32,7 +32,7 @@ namespace boost { namespace fusion
{ {
typedef mpl::int_<N> index; typedef mpl::int_<N> index;
typedef Vector vector; typedef Vector vector;
typedef vector_iterator_tag ftag; typedef vector_iterator_tag fusion_tag;
typedef random_access_traversal_tag category; typedef random_access_traversal_tag category;
typedef vector_iterator_identity< typedef vector_iterator_identity<
typename add_const<Vector>::type, N> identity; typename add_const<Vector>::type, N> identity;

View File

@ -28,7 +28,7 @@ namespace boost { namespace fusion
template <typename Sequence, typename Pred> template <typename Sequence, typename Pred>
struct filter_view : sequence_base<filter_view<Sequence, Pred> > struct filter_view : sequence_base<filter_view<Sequence, Pred> >
{ {
typedef filter_view_tag ftag; typedef filter_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -29,7 +29,7 @@ namespace boost { namespace fusion
typedef convert_iterator<Last> last_converter; typedef convert_iterator<Last> last_converter;
typedef typename last_converter::type last_iter; typedef typename last_converter::type last_iter;
typedef filter_view_iterator_tag ftag; typedef filter_view_iterator_tag fusion_tag;
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
typedef detail::static_find_if<first_iter, last_iter, Pred> filter; typedef detail::static_find_if<first_iter, last_iter, Pred> filter;
typedef typename filter::type first_type; typedef typename filter::type first_type;

View File

@ -28,7 +28,7 @@ namespace boost { namespace fusion
{ {
typedef typename convert_iterator<First>::type begin_type; typedef typename convert_iterator<First>::type begin_type;
typedef typename convert_iterator<Last>::type end_type; typedef typename convert_iterator<Last>::type end_type;
typedef iterator_range_tag ftag; typedef iterator_range_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef typename result_of::distance<begin_type, end_type>::type size; typedef typename result_of::distance<begin_type, end_type>::type size;
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence1, typename Sequence2> template <typename Sequence1, typename Sequence2>
struct joint_view : sequence_base<joint_view<Sequence1, Sequence2> > struct joint_view : sequence_base<joint_view<Sequence1, Sequence2> >
{ {
typedef joint_view_tag ftag; typedef joint_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -33,7 +33,7 @@ namespace boost { namespace fusion
typedef typename last_converter::type last_type; typedef typename last_converter::type last_type;
typedef typename concat_converter::type concat_type; typedef typename concat_converter::type concat_type;
typedef joint_view_iterator_tag ftag; typedef joint_view_iterator_tag fusion_tag;
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
BOOST_STATIC_ASSERT((!result_of::equal_to<first_type, last_type>::value)); BOOST_STATIC_ASSERT((!result_of::equal_to<first_type, last_type>::value));

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct apply struct apply
{ {
typedef typename Iterator::first_type first_type; typedef typename Iterator::first_type first_type;
typedef typename prior_impl<typename first_type::ftag>:: typedef typename prior_impl<typename first_type::fusion_tag>::
template apply<first_type> template apply<first_type>
wrapped; wrapped;

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct apply struct apply
{ {
typedef typename Iterator::first_type first_type; typedef typename Iterator::first_type first_type;
typedef typename next_impl<typename first_type::ftag>:: typedef typename next_impl<typename first_type::fusion_tag>::
template apply<first_type> template apply<first_type>
wrapped; wrapped;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence> template <typename Sequence>
struct reverse_view : sequence_base<reverse_view<Sequence> > struct reverse_view : sequence_base<reverse_view<Sequence> >
{ {
typedef reverse_view_tag ftag; typedef reverse_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
{ {
typedef convert_iterator<First> converter; typedef convert_iterator<First> converter;
typedef typename converter::type first_type; typedef typename converter::type first_type;
typedef reverse_view_iterator_tag ftag; typedef reverse_view_iterator_tag fusion_tag;
typedef typename traits::category_of<first_type>::type category; typedef typename traits::category_of<first_type>::type category;
BOOST_STATIC_ASSERT(( BOOST_STATIC_ASSERT((

View File

@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename T> template <typename T>
struct single_view : sequence_base<single_view<T> > struct single_view : sequence_base<single_view<T> >
{ {
typedef single_view_tag ftag; typedef single_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef forward_sequence_tag category; typedef forward_sequence_tag category;
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -23,7 +23,7 @@ namespace boost { namespace fusion
struct single_view_iterator_end struct single_view_iterator_end
: iterator_base<single_view_iterator_end<SingleView> > : iterator_base<single_view_iterator_end<SingleView> >
{ {
typedef single_view_iterator_tag ftag; typedef single_view_iterator_tag fusion_tag;
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
}; };
@ -31,7 +31,7 @@ namespace boost { namespace fusion
struct single_view_iterator struct single_view_iterator
: iterator_base<single_view_iterator<SingleView> > : iterator_base<single_view_iterator<SingleView> >
{ {
typedef single_view_iterator_tag ftag; typedef single_view_iterator_tag fusion_tag;
typedef forward_traversal_tag category; typedef forward_traversal_tag category;
typedef typename SingleView::value_type value_type; typedef typename SingleView::value_type value_type;
typedef SingleView single_view_type; typedef SingleView single_view_type;

View File

@ -35,7 +35,7 @@ namespace boost { namespace fusion
struct transform_view : sequence_base<transform_view<Sequence1, Sequence2, F> > struct transform_view : sequence_base<transform_view<Sequence1, Sequence2, F> >
{ {
BOOST_STATIC_ASSERT(result_of::size<Sequence1>::value == result_of::size<Sequence2>::value); BOOST_STATIC_ASSERT(result_of::size<Sequence1>::value == result_of::size<Sequence2>::value);
typedef transform_view2_tag ftag; typedef transform_view2_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::true_ is_view; typedef mpl::true_ is_view;
@ -68,7 +68,7 @@ namespace boost { namespace fusion
template <typename Sequence, typename F> template <typename Sequence, typename F>
struct transform_view<Sequence, F> : sequence_base<transform_view<Sequence, F> > struct transform_view<Sequence, F> : sequence_base<transform_view<Sequence, F> >
{ {
typedef transform_view_tag ftag; typedef transform_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::true_ is_view; typedef mpl::true_ is_view;

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct transform_view_iterator struct transform_view_iterator
: iterator_base<transform_view_iterator<First, F> > : iterator_base<transform_view_iterator<First, F> >
{ {
typedef transform_view_iterator_tag ftag; typedef transform_view_iterator_tag fusion_tag;
typedef convert_iterator<First> converter; typedef convert_iterator<First> converter;
typedef typename converter::type first_type; typedef typename converter::type first_type;
typedef typename traits::category_of<first_type>::type category; typedef typename traits::category_of<first_type>::type category;
@ -47,7 +47,7 @@ namespace boost { namespace fusion
struct transform_view_iterator2 struct transform_view_iterator2
: iterator_base<transform_view_iterator2<First1, First2, F> > : iterator_base<transform_view_iterator2<First1, First2, F> >
{ {
typedef transform_view_iterator2_tag ftag; typedef transform_view_iterator2_tag fusion_tag;
typedef convert_iterator<First1> converter1; typedef convert_iterator<First1> converter1;
typedef convert_iterator<First2> converter2; typedef convert_iterator<First2> converter2;
typedef typename converter1::type first1_type; typedef typename converter1::type first1_type;

View File

@ -71,7 +71,7 @@ namespace boost { namespace fusion {
BOOST_MPL_ASSERT((detail::all_references<Sequences>)); BOOST_MPL_ASSERT((detail::all_references<Sequences>));
BOOST_MPL_ASSERT((detail::all_same_size<Sequences>)); BOOST_MPL_ASSERT((detail::all_same_size<Sequences>));
typedef typename detail::strictest_traversal<Sequences>::type category; typedef typename detail::strictest_traversal<Sequences>::type category;
typedef zip_view_tag ftag; typedef zip_view_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::true_ is_view; typedef mpl::true_ is_view;
typedef typename fusion::result_of::as_vector<Sequences>::type sequences; typedef typename fusion::result_of::as_vector<Sequences>::type sequences;

View File

@ -31,7 +31,7 @@ namespace boost { namespace fusion {
struct zip_view_iterator struct zip_view_iterator
: iterator_base<zip_view_iterator<IteratorSequence, Traversal> > : iterator_base<zip_view_iterator<IteratorSequence, Traversal> >
{ {
typedef zip_view_iterator_tag ftag; typedef zip_view_iterator_tag fusion_tag;
typedef Traversal category; typedef Traversal category;
template<typename InitSeq> template<typename InitSeq>

View File

@ -19,7 +19,7 @@ namespace boost { namespace fusion
namespace detail namespace detail
{ {
BOOST_MPL_HAS_XXX_TRAIT_DEF(ftag) BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
} }
namespace traits namespace traits
@ -31,9 +31,9 @@ namespace boost { namespace fusion
}; };
template<typename Sequence> template<typename Sequence>
struct tag_of<Sequence, typename boost::enable_if<detail::has_ftag<Sequence> >::type> struct tag_of<Sequence, typename boost::enable_if<detail::has_fusion_tag<Sequence> >::type>
{ {
typedef typename Sequence::ftag type; typedef typename Sequence::fusion_tag type;
}; };
} }