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__
{
typedef typename
extension::value_of_impl<typename Iterator::ftag>::
extension::value_of_impl<typename Iterator::fusion_tag>::
template apply<Iterator>::type
type;
};
@ -209,7 +209,7 @@ To see how `deref_impl` is used, lets have a look at the implementation of __der
struct __deref__
{
typedef typename
deref_impl<typename Iterator::ftag>::
deref_impl<typename Iterator::fusion_tag>::
template apply<Iterator>::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)
{
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);
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="special">{</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="identifier">type</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="special">{</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="identifier">type</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>
<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">return</span> <span class="identifier">result</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
dispatching</em></span></a> from <a href="../sequences/intrinsics.html" title="Intrinsics">Intrinsic</a>
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
a member typedef exists.
</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.
The purpose of the tag is to enable __tag_dispatching__ from __intrinsic__
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.

View File

@ -34,7 +34,7 @@ namespace boost { namespace fusion {
BOOST_STATIC_ASSERT(Pos >=0 && Pos < 3);
typedef Struct struct_type;
typedef mpl::int_<Pos> index;
typedef example_struct_iterator_tag ftag;
typedef example_struct_iterator_tag fusion_tag;
typedef random_access_traversal_tag category;
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));
typedef mpl::size_t<Pos> index;
typedef array_iterator_tag ftag;
typedef array_iterator_tag fusion_tag;
typedef random_access_traversal_tag category;
typedef Array array_type;
typedef array_iterator<

View File

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

View File

@ -32,7 +32,7 @@ namespace boost { namespace fusion
: iterator_base<std_pair_iterator<Pair, N> >
{
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 std_pair_iterator_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> >
{
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 std_pair_iterator_identity<
typename add_const<Pair>::type, N> identity;

View File

@ -36,7 +36,7 @@ namespace boost { namespace fusion
struct nil : sequence_base<nil>
{
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 mpl::false_ is_view;
typedef forward_sequence_tag category;
@ -59,7 +59,7 @@ namespace boost { namespace fusion
struct cons : sequence_base<cons<Car, Cdr> >
{
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 mpl::false_ is_view;
typedef forward_sequence_tag category;

View File

@ -29,7 +29,7 @@ namespace boost { namespace fusion
template <typename Cons = nil>
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 Cons cons_type;
typedef cons_iterator_identity<
@ -45,7 +45,7 @@ namespace boost { namespace fusion
struct nil_iterator : iterator_base<nil_iterator>
{
typedef forward_traversal_tag category;
typedef cons_iterator_tag ftag;
typedef cons_iterator_tag fusion_tag;
typedef nil cons_type;
typedef cons_iterator_identity<
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)>
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 forward_sequence_tag category;
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)>
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 forward_sequence_tag category;
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_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 vector_tag ftag;
typedef vector_tag fusion_tag;
typedef fusion_sequence_tag tag; // this gets picked up by MPL
typedef mpl::false_ is_view;
typedef random_access_sequence_tag category;

View File

@ -40,7 +40,7 @@ namespace boost { namespace fusion
public:
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::size size;
typedef typename vector_n::category category;

View File

@ -43,7 +43,7 @@ namespace boost { namespace fusion
struct vector0 : sequence_base<vector0>
{
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 mpl::false_ is_view;
typedef random_access_sequence_tag category;

View File

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

View File

@ -28,7 +28,7 @@ namespace boost { namespace fusion
template <typename Sequence, typename 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 forward_sequence_tag category;
typedef mpl::true_ is_view;

View File

@ -29,7 +29,7 @@ namespace boost { namespace fusion
typedef convert_iterator<Last> last_converter;
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 detail::static_find_if<first_iter, last_iter, Pred> filter;
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<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 typename result_of::distance<begin_type, end_type>::type size;
typedef mpl::true_ is_view;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename Sequence1, typename 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 forward_sequence_tag category;
typedef mpl::true_ is_view;

View File

@ -33,7 +33,7 @@ namespace boost { namespace fusion
typedef typename last_converter::type last_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;
BOOST_STATIC_ASSERT((!result_of::equal_to<first_type, last_type>::value));

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct apply
{
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>
wrapped;

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct apply
{
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>
wrapped;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
template <typename 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 mpl::true_ is_view;

View File

@ -30,7 +30,7 @@ namespace boost { namespace fusion
{
typedef convert_iterator<First> converter;
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;
BOOST_STATIC_ASSERT((

View File

@ -26,7 +26,7 @@ namespace boost { namespace fusion
template <typename 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 forward_sequence_tag category;
typedef mpl::true_ is_view;

View File

@ -23,7 +23,7 @@ namespace boost { namespace fusion
struct single_view_iterator_end
: 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;
};
@ -31,7 +31,7 @@ namespace boost { namespace fusion
struct single_view_iterator
: 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 typename SingleView::value_type value_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> >
{
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 mpl::true_ is_view;
@ -68,7 +68,7 @@ namespace boost { namespace fusion
template <typename Sequence, typename 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 mpl::true_ is_view;

View File

@ -27,7 +27,7 @@ namespace boost { namespace fusion
struct transform_view_iterator
: 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 typename converter::type first_type;
typedef typename traits::category_of<first_type>::type category;
@ -47,7 +47,7 @@ namespace boost { namespace fusion
struct transform_view_iterator2
: 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<First2> converter2;
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_same_size<Sequences>));
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 mpl::true_ is_view;
typedef typename fusion::result_of::as_vector<Sequences>::type sequences;

View File

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

View File

@ -19,7 +19,7 @@ namespace boost { namespace fusion
namespace detail
{
BOOST_MPL_HAS_XXX_TRAIT_DEF(ftag)
BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
}
namespace traits
@ -31,9 +31,9 @@ namespace boost { namespace fusion
};
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;
};
}