1b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 2b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#ifndef BOOST_MPL_TAG_HPP_INCLUDED 3b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#define BOOST_MPL_TAG_HPP_INCLUDED 4b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 5b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Copyright Aleksey Gurtovoy 2004 6b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 7b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// Distributed under the Boost Software License, Version 1.0. 8b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// (See accompanying file LICENSE_1_0.txt or copy at 9b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// http://www.boost.org/LICENSE_1_0.txt) 10b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// 11b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// See http://www.boost.org/libs/mpl for documentation. 12b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 13b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ 14b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $ 15b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner// $Revision: 49267 $ 16b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 17b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <boost/mpl/eval_if.hpp> 18b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <boost/mpl/void.hpp> 19b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <boost/mpl/aux_/has_tag.hpp> 20b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#include <boost/mpl/aux_/config/eti.hpp> 21b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 22b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnernamespace boost { namespace mpl { 23b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 24b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnernamespace aux { 25b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnertemplate< typename T > struct tag_impl 26b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 27b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef typename T::tag type; 28b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 29b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner} 30b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 31b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turnertemplate< typename T, typename Default = void_ > struct tag 32b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) 33b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner : if_< 34b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner aux::has_tag<T> 35b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner , aux::tag_impl<T> 36b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner , Default 37b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner >::type 38b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 39b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#else 40b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner{ 41b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner typedef typename eval_if< 42b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner aux::has_tag<T> 43b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner , aux::tag_impl<T> 44b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner , Default 45b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner >::type type; 46b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 47b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#endif 48b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}; 49b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 50b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner}} 51b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner 52b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner#endif // BOOST_MPL_TAG_HPP_INCLUDED 53b9a36c36f4b257de79bd656aefa7bfde40cedb0fDavid 'Digit' Turner