Back to home page

EIC code displayed by LXR

 
 

    


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

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 
0009 // Preprocessed version of "boost/mpl/apply_wrap.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl {
0013 
0014 template< typename F>
0015 struct msvc_apply0
0016 {
0017     template< bool > struct f_ : F {};
0018     template<> struct f_<true>
0019     {
0020         template< typename P  = int > struct apply
0021         {
0022             typedef int type;
0023         };
0024     };
0025 
0026     template< typename T  = int > struct result_
0027         : f_< aux::msvc_never_true<F>::value >
0028             ::template apply<>
0029     {
0030     };
0031 
0032 };
0033 
0034 template<
0035       typename F
0036     >
0037 struct apply_wrap0
0038 {
0039     typedef typename msvc_apply0<F>::template result_<
0040          
0041         >::type type;
0042 };
0043 
0044 /// workaround for ETI bug
0045 template<>
0046 struct apply_wrap0<int>
0047 {
0048     typedef int type;
0049 };
0050 
0051 template< typename F>
0052 struct msvc_apply1
0053 {
0054     template< bool > struct f_ : F {};
0055     template<> struct f_<true>
0056     {
0057         template< typename P1 > struct apply
0058         {
0059             typedef int type;
0060         };
0061     };
0062 
0063     template< typename T1 > struct result_
0064         : f_< aux::msvc_never_true<F>::value >
0065             ::template apply<T1>
0066     {
0067     };
0068 };
0069 
0070 template<
0071       typename F, typename T1
0072     >
0073 struct apply_wrap1
0074 {
0075     typedef typename msvc_apply1<F>::template result_<
0076           T1
0077         >::type type;
0078 };
0079 
0080 /// workaround for ETI bug
0081 template<>
0082 struct apply_wrap1< int,int >
0083 {
0084     typedef int type;
0085 };
0086 
0087 template< typename F>
0088 struct msvc_apply2
0089 {
0090     template< bool > struct f_ : F {};
0091     template<> struct f_<true>
0092     {
0093         template< typename P1, typename P2 > struct apply
0094         {
0095             typedef int type;
0096         };
0097     };
0098 
0099     template< typename T1, typename T2 > struct result_
0100         : f_< aux::msvc_never_true<F>::value >
0101             ::template apply< T1,T2 >
0102     {
0103     };
0104 };
0105 
0106 template<
0107       typename F, typename T1, typename T2
0108     >
0109 struct apply_wrap2
0110 {
0111     typedef typename msvc_apply2<F>::template result_<
0112           T1, T2
0113         >::type type;
0114 };
0115 
0116 /// workaround for ETI bug
0117 template<>
0118 struct apply_wrap2< int,int,int >
0119 {
0120     typedef int type;
0121 };
0122 
0123 template< typename F>
0124 struct msvc_apply3
0125 {
0126     template< bool > struct f_ : F {};
0127     template<> struct f_<true>
0128     {
0129         template< typename P1, typename P2, typename P3 > struct apply
0130         {
0131             typedef int type;
0132         };
0133     };
0134 
0135     template< typename T1, typename T2, typename T3 > struct result_
0136         : f_< aux::msvc_never_true<F>::value >
0137             ::template apply< T1,T2,T3 >
0138     {
0139     };
0140 };
0141 
0142 template<
0143       typename F, typename T1, typename T2, typename T3
0144     >
0145 struct apply_wrap3
0146 {
0147     typedef typename msvc_apply3<F>::template result_<
0148           T1, T2, T3
0149         >::type type;
0150 };
0151 
0152 /// workaround for ETI bug
0153 template<>
0154 struct apply_wrap3< int,int,int,int >
0155 {
0156     typedef int type;
0157 };
0158 
0159 template< typename F>
0160 struct msvc_apply4
0161 {
0162     template< bool > struct f_ : F {};
0163     template<> struct f_<true>
0164     {
0165         template<
0166               typename P1, typename P2, typename P3, typename P4
0167             >
0168         struct apply
0169         {
0170             typedef int type;
0171         };
0172     };
0173 
0174     template<
0175           typename T1, typename T2, typename T3, typename T4
0176         >
0177     struct result_
0178         : f_< aux::msvc_never_true<F>::value >
0179             ::template apply< T1,T2,T3,T4 >
0180     {
0181     };
0182 };
0183 
0184 template<
0185       typename F, typename T1, typename T2, typename T3, typename T4
0186     >
0187 struct apply_wrap4
0188 {
0189     typedef typename msvc_apply4<F>::template result_<
0190           T1, T2, T3, T4
0191         >::type type;
0192 };
0193 
0194 /// workaround for ETI bug
0195 template<>
0196 struct apply_wrap4< int,int,int,int,int >
0197 {
0198     typedef int type;
0199 };
0200 
0201 template< typename F>
0202 struct msvc_apply5
0203 {
0204     template< bool > struct f_ : F {};
0205     template<> struct f_<true>
0206     {
0207         template<
0208               typename P1, typename P2, typename P3, typename P4
0209             , typename P5
0210             >
0211         struct apply
0212         {
0213             typedef int type;
0214         };
0215     };
0216 
0217     template<
0218           typename T1, typename T2, typename T3, typename T4
0219         , typename T5
0220         >
0221     struct result_
0222         : f_< aux::msvc_never_true<F>::value >
0223             ::template apply< T1,T2,T3,T4,T5 >
0224     {
0225     };
0226 };
0227 
0228 template<
0229       typename F, typename T1, typename T2, typename T3, typename T4
0230     , typename T5
0231     >
0232 struct apply_wrap5
0233 {
0234     typedef typename msvc_apply5<F>::template result_<
0235           T1, T2, T3, T4, T5
0236         >::type type;
0237 };
0238 
0239 /// workaround for ETI bug
0240 template<>
0241 struct apply_wrap5< int,int,int,int,int,int >
0242 {
0243     typedef int type;
0244 };
0245 
0246 }}
0247