/*============================================================================= Copyright (c) 2001-2006 Joel de Guzman Copyright (c) 2005-2006 Dan Marsden 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_STD_PAIR_24122005_1744) #define BOOST_FUSION_STD_PAIR_24122005_1744 #include #include #include #include namespace boost { namespace fusion { struct struct_tag; namespace traits { template #if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS) struct tag_of, void > #else struct tag_of > #endif { typedef struct_tag type; }; } namespace extension { template struct struct_member; template struct struct_size; template struct struct_member, 0> { typedef T1 type; static type& call(std::pair& pair) { return pair.first; } }; template struct struct_member, 1> { typedef T2 type; static type& call(std::pair& pair) { return pair.second; } }; template struct struct_size > : mpl::int_<2> { }; } }} #endif