/*============================================================================= Copyright (c) 2001-2011 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(BOOST_FUSION_TAG_OF_09262006_1900) #define BOOST_FUSION_TAG_OF_09262006_1900 #include namespace boost { 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 boost_tuple_tag; struct fusion_sequence_tag; namespace traits { template < class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 > #if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) struct tag_of, void > #else struct tag_of > #endif { typedef boost_tuple_tag type; }; template #if defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) struct tag_of, void > #else struct tag_of > #endif { typedef boost_tuple_tag type; }; template <> struct tag_of { typedef boost_tuple_tag type; }; } }} namespace boost { namespace mpl { template struct sequence_tag; template < class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 > struct sequence_tag > { typedef fusion::fusion_sequence_tag type; }; template < class T0, class T1, class T2, class T3, class T4, class T5, class T6, class T7, class T8, class T9 > struct sequence_tag< tuples::tuple const > { typedef fusion::fusion_sequence_tag type; }; template struct sequence_tag > { typedef fusion::fusion_sequence_tag type; }; template struct sequence_tag const> { typedef fusion::fusion_sequence_tag type; }; template <> struct sequence_tag { typedef fusion::fusion_sequence_tag type; }; template <> struct sequence_tag { typedef fusion::fusion_sequence_tag type; }; }} #endif