File indexing completed on 2025-01-18 09:41:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
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
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
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
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
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
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
0240 template<>
0241 struct apply_wrap5< int,int,int,int,int,int >
0242 {
0243 typedef int type;
0244 };
0245
0246 }}
0247