Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:38

0001 
0002 // Copyright Aleksey Gurtovoy 2000-2004
0003 //
0004 // Distributed under the Boost Software License, Version 1.0. 
0005 // (See accompanying file LICENSE_1_0.txt or copy at 
0006 // http://www.boost.org/LICENSE_1_0.txt)
0007 //
0008 // See http://www.boost.org/libs/mpl for documentation.
0009 
0010 // $Id$
0011 // $Date$
0012 // $Revision$
0013 
0014 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
0015 
0016 #include <boost/mpl/aux_/preprocessor/params.hpp>
0017 
0018 // local macros, #undef-ined at the end of the header
0019 #define AUX778076_DTW_PARAMS(param) \
0020     BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
0021 /**/
0022 
0023 #define AUX778076_DTW_ORIGINAL_NAME \
0024     AUX778076_MSVC_DTW_ORIGINAL_NAME \
0025 /**/
0026 
0027 // warning: not a well-formed C++
0028 // workaround for MSVC 6.5's "dependent template typedef bug"
0029 
0030 template< typename F>
0031 struct AUX778076_MSVC_DTW_NAME
0032 {
0033     template< bool > struct f_ : F {};
0034     template<> struct f_<true>
0035     {
0036 #if AUX778076_MSVC_DTW_ARITY > 0
0037         template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME
0038         {
0039             typedef int type;
0040         };
0041     };
0042 
0043     template< AUX778076_DTW_PARAMS(typename T) > struct result_
0044         : f_< aux::msvc_never_true<F>::value >
0045             ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) >
0046     {
0047     };
0048 #else
0049         template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME
0050         {
0051             typedef int type;
0052         };
0053     };
0054 
0055     template< typename T = int > struct result_
0056         : f_< aux::msvc_never_true<F>::value >
0057             ::template AUX778076_DTW_ORIGINAL_NAME<>
0058     {
0059     };
0060 #endif
0061 };
0062 
0063 #undef AUX778076_DTW_ORIGINAL_NAME
0064 #undef AUX778076_DTW_PARAMS
0065 
0066 #undef AUX778076_MSVC_DTW_NAME
0067 #undef AUX778076_MSVC_DTW_ORIGINAL_NAME
0068 #undef AUX778076_MSVC_DTW_ARITY