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 : apply_wrap0< 20 typename lambda<F>::type 21 22 > 23 { 24 BOOST_MPL_AUX_LAMBDA_SUPPORT( 25 1 26 , apply0 27 , (F ) 28 ) 29 }; 30 31 template< 32 typename F 33 > 34 struct apply< F,na,na,na,na,na > 35 : apply0<F> 36 { 37 }; 38 39 template< 40 typename F, typename T1 41 > 42 struct apply1 43 44 : apply_wrap1< 45 typename lambda<F>::type 46 , T1 47 > 48 { 49 BOOST_MPL_AUX_LAMBDA_SUPPORT( 50 2 51 , apply1 52 , (F, T1) 53 ) 54 }; 55 56 template< 57 typename F, typename T1 58 > 59 struct apply< F,T1,na,na,na,na > 60 : apply1< F,T1 > 61 { 62 }; 63 64 template< 65 typename F, typename T1, typename T2 66 > 67 struct apply2 68 69 : apply_wrap2< 70 typename lambda<F>::type 71 , T1, T2 72 > 73 { 74 BOOST_MPL_AUX_LAMBDA_SUPPORT( 75 3 76 , apply2 77 , (F, T1, T2) 78 ) 79 }; 80 81 template< 82 typename F, typename T1, typename T2 83 > 84 struct apply< F,T1,T2,na,na,na > 85 : apply2< F,T1,T2 > 86 { 87 }; 88 89 template< 90 typename F, typename T1, typename T2, typename T3 91 > 92 struct apply3 93 94 : apply_wrap3< 95 typename lambda<F>::type 96 , T1, T2, T3 97 > 98 { 99 BOOST_MPL_AUX_LAMBDA_SUPPORT( 100 4 101 , apply3 102 , (F, T1, T2, T3) 103 ) 104 }; 105 106 template< 107 typename F, typename T1, typename T2, typename T3 108 > 109 struct apply< F,T1,T2,T3,na,na > 110 : apply3< F,T1,T2,T3 > 111 { 112 }; 113 114 template< 115 typename F, typename T1, typename T2, typename T3, typename T4 116 > 117 struct apply4 118 119 : apply_wrap4< 120 typename lambda<F>::type 121 , T1, T2, T3, T4 122 > 123 { 124 BOOST_MPL_AUX_LAMBDA_SUPPORT( 125 5 126 , apply4 127 , (F, T1, T2, T3, T4) 128 ) 129 }; 130 131 template< 132 typename F, typename T1, typename T2, typename T3, typename T4 133 > 134 struct apply< F,T1,T2,T3,T4,na > 135 : apply4< F,T1,T2,T3,T4 > 136 { 137 }; 138 139 template< 140 typename F, typename T1, typename T2, typename T3, typename T4 141 , typename T5 142 > 143 struct apply5 144 145 : apply_wrap5< 146 typename lambda<F>::type 147 , T1, T2, T3, T4, T5 148 > 149 { 150 BOOST_MPL_AUX_LAMBDA_SUPPORT( 151 6 152 , apply5 153 , (F, T1, T2, T3, T4, T5) 154 ) 155 }; 156 157 /// primary template (not a specialization!) 158 159 template< 160 typename F, typename T1, typename T2, typename T3, typename T4 161 , typename T5 162 > 163 struct apply 164 : apply5< F,T1,T2,T3,T4,T5 > 165 { 166 }; 167 168 }} 169 170