1 2 // Copyright Aleksey Gurtovoy 2000-2004 3 // 4 // Distributed under the Boost Software License, Version 1.0. 5 // (See accompanying file LICENSE_1_0.txt or copy at 6 // http://www.boost.org/LICENSE_1_0.txt) 7 // 8 9 // Preprocessed version of "boost/mpl/apply.hpp" header 10 // -- DO NOT modify by hand! 11 12 namespace boost { namespace mpl { 13 14 template< 15 typename F 16 > 17 struct apply0 18 19 { 20 typedef typename apply_wrap0< 21 typename lambda<F>::type 22 23 >::type type; 24 25 BOOST_MPL_AUX_LAMBDA_SUPPORT( 26 1 27 , apply0 28 , (F ) 29 ) 30 }; 31 32 /// workaround for ETI bug 33 template<> 34 struct apply0<int> 35 { 36 typedef int type; 37 }; 38 39 template< 40 typename F, typename T1 41 > 42 struct apply1 43 44 { 45 typedef typename apply_wrap1< 46 typename lambda<F>::type 47 , T1 48 >::type type; 49 50 BOOST_MPL_AUX_LAMBDA_SUPPORT( 51 2 52 , apply1 53 , (F, T1) 54 ) 55 }; 56 57 /// workaround for ETI bug 58 template<> 59 struct apply1< int,int > 60 { 61 typedef int type; 62 }; 63 64 template< 65 typename F, typename T1, typename T2 66 > 67 struct apply2 68 69 { 70 typedef typename apply_wrap2< 71 typename lambda<F>::type 72 , T1, T2 73 >::type type; 74 75 BOOST_MPL_AUX_LAMBDA_SUPPORT( 76 3 77 , apply2 78 , (F, T1, T2) 79 ) 80 }; 81 82 /// workaround for ETI bug 83 template<> 84 struct apply2< int,int,int > 85 { 86 typedef int type; 87 }; 88 89 template< 90 typename F, typename T1, typename T2, typename T3 91 > 92 struct apply3 93 94 { 95 typedef typename apply_wrap3< 96 typename lambda<F>::type 97 , T1, T2, T3 98 >::type type; 99 100 BOOST_MPL_AUX_LAMBDA_SUPPORT( 101 4 102 , apply3 103 , (F, T1, T2, T3) 104 ) 105 }; 106 107 /// workaround for ETI bug 108 template<> 109 struct apply3< int,int,int,int > 110 { 111 typedef int type; 112 }; 113 114 template< 115 typename F, typename T1, typename T2, typename T3, typename T4 116 > 117 struct apply4 118 119 { 120 typedef typename apply_wrap4< 121 typename lambda<F>::type 122 , T1, T2, T3, T4 123 >::type type; 124 125 BOOST_MPL_AUX_LAMBDA_SUPPORT( 126 5 127 , apply4 128 , (F, T1, T2, T3, T4) 129 ) 130 }; 131 132 /// workaround for ETI bug 133 template<> 134 struct apply4< int,int,int,int,int > 135 { 136 typedef int type; 137 }; 138 139 template< 140 typename F, typename T1, typename T2, typename T3, typename T4 141 , typename T5 142 > 143 struct apply5 144 145 { 146 typedef typename apply_wrap5< 147 typename lambda<F>::type 148 , T1, T2, T3, T4, T5 149 >::type type; 150 151 BOOST_MPL_AUX_LAMBDA_SUPPORT( 152 6 153 , apply5 154 , (F, T1, T2, T3, T4, T5) 155 ) 156 }; 157 158 /// workaround for ETI bug 159 template<> 160 struct apply5< int,int,int,int,int,int > 161 { 162 typedef int type; 163 }; 164 165 }} 166 167