整理
This commit is contained in:
68
include/boost/mpl/aux_/msvc_dtw.hpp
Normal file
68
include/boost/mpl/aux_/msvc_dtw.hpp
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
// 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$
|
||||
|
||||
// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
|
||||
|
||||
#include <boost/mpl/aux_/preprocessor/params.hpp>
|
||||
|
||||
// local macros, #undef-ined at the end of the header
|
||||
#define AUX778076_DTW_PARAMS(param) \
|
||||
BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
|
||||
/**/
|
||||
|
||||
#define AUX778076_DTW_ORIGINAL_NAME \
|
||||
AUX778076_MSVC_DTW_ORIGINAL_NAME \
|
||||
/**/
|
||||
|
||||
// warning: not a well-formed C++
|
||||
// workaround for MSVC 6.5's "dependent template typedef bug"
|
||||
|
||||
template< typename F>
|
||||
struct AUX778076_MSVC_DTW_NAME
|
||||
{
|
||||
template< bool > struct f_ : F {};
|
||||
template<> struct f_<true>
|
||||
{
|
||||
#if AUX778076_MSVC_DTW_ARITY > 0
|
||||
template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME
|
||||
{
|
||||
typedef int type;
|
||||
};
|
||||
};
|
||||
|
||||
template< AUX778076_DTW_PARAMS(typename T) > struct result_
|
||||
: f_< aux::msvc_never_true<F>::value >
|
||||
::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) >
|
||||
{
|
||||
};
|
||||
#else
|
||||
template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME
|
||||
{
|
||||
typedef int type;
|
||||
};
|
||||
};
|
||||
|
||||
template< typename T = int > struct result_
|
||||
: f_< aux::msvc_never_true<F>::value >
|
||||
::template AUX778076_DTW_ORIGINAL_NAME<>
|
||||
{
|
||||
};
|
||||
#endif
|
||||
};
|
||||
|
||||
#undef AUX778076_DTW_ORIGINAL_NAME
|
||||
#undef AUX778076_DTW_PARAMS
|
||||
|
||||
#undef AUX778076_MSVC_DTW_NAME
|
||||
#undef AUX778076_MSVC_DTW_ORIGINAL_NAME
|
||||
#undef AUX778076_MSVC_DTW_ARITY
|
||||
Reference in New Issue
Block a user