/*============================================================================= Copyright (c) 2001-2006 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(FUSION_TAG_OF_09232005_0845) #define FUSION_TAG_OF_09232005_0845 #include #include #include #include #include #include #include #include #include #include namespace boost { template class array; // forward namespace tuples { struct null_type; template < class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 > class tuple; template struct cons; } } namespace boost { namespace fusion { struct non_fusion_tag; struct mpl_sequence_tag; namespace detail { BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag) } namespace traits { template struct tag_of : mpl::if_< fusion::detail::is_mpl_sequence, mpl::identity, mpl::identity >::type {}; template struct tag_of >::type> { typedef typename Sequence::fusion_tag type; }; } namespace detail { template struct tag_of : traits::tag_of::type> {}; } }} #endif