2 #ifndef BOOST_MPL_TAG_HPP_INCLUDED
3 #define BOOST_MPL_TAG_HPP_INCLUDED
5 // Copyright Aleksey Gurtovoy 2004
7 // Distributed under the Boost Software License, Version 1.0.
8 // (See accompanying file LICENSE_1_0.txt or copy at
9 // http://www.boost.org/LICENSE_1_0.txt)
11 // See http://www.boost.org/libs/mpl for documentation.
17 #include <boost/mpl/eval_if.hpp>
18 #include <boost/mpl/void.hpp>
19 #include <boost/mpl/aux_/has_tag.hpp>
20 #include <boost/mpl/aux_/config/eti.hpp>
22 namespace boost { namespace mpl {
25 template< typename T > struct tag_impl
27 typedef typename T::tag type;
31 template< typename T, typename Default = void_ > struct tag
32 #if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
41 typedef typename eval_if<
52 #endif // BOOST_MPL_TAG_HPP_INCLUDED