90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			90 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
							 | 
						||
| 
								 | 
							
								#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Copyright Aleksey Gurtovoy 2000-2004
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// 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)
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// See http://www.boost.org/libs/mpl for documentation.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// $Id$
							 | 
						||
| 
								 | 
							
								// $Date$
							 | 
						||
| 
								 | 
							
								// $Revision$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <boost/mpl/aux_/static_cast.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/mpl/aux_/config/integral.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/mpl/aux_/config/eti.hpp>
							 | 
						||
| 
								 | 
							
								#include <boost/mpl/aux_/config/workaround.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
							 | 
						||
| 
								 | 
							
								    || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#   include <boost/mpl/int.hpp>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost { namespace mpl { namespace aux {
							 | 
						||
| 
								 | 
							
								template< typename C_ > struct value_wknd
							 | 
						||
| 
								 | 
							
								    : C_
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
							 | 
						||
| 
								 | 
							
								template<> struct value_wknd<int>
							 | 
						||
| 
								 | 
							
								    : int_<1>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    using int_<1>::value;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								}}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_VALUE_WKND(C) \
							 | 
						||
| 
								 | 
							
								    ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \
							 | 
						||
| 
								 | 
							
								/**/
							 | 
						||
| 
								 | 
							
								#    define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C)
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_VALUE_WKND(C) C
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
							 | 
						||
| 
								 | 
							
								    ::boost::mpl::aux::value_wknd< C > \
							 | 
						||
| 
								 | 
							
								/**/
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_VALUE_WKND(C) C
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
							 | 
						||
| 
								 | 
							
								    BOOST_MPL_AUX_STATIC_CAST(T, C::value) \
							 | 
						||
| 
								 | 
							
								/**/
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
							 | 
						||
| 
								 | 
							
								    BOOST_MPL_AUX_VALUE_WKND(C)::value \
							 | 
						||
| 
								 | 
							
								/**/
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost { namespace mpl { namespace aux {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								template< typename T > struct value_type_wknd
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    typedef typename T::value_type type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
							 | 
						||
| 
								 | 
							
								template<> struct value_type_wknd<int>
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    typedef int type;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}}}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
							 |