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_wrap.hpp" header 10 // -- DO NOT modify by hand! 11 12 namespace boost { namespace mpl { 13 14 template< 15 typename F 16 17 , typename has_apply_ = typename aux::has_apply<F>::type 18 19 > 20 struct apply_wrap0 21 22 { 23 typedef typename F::template apply< 24 25 >::type type; 26 27 }; 28 29 /// workaround for ETI bug 30 template<> 31 struct apply_wrap0<int> 32 { 33 typedef int type; 34 }; 35 36 template< 37 typename F, typename T1 38 39 > 40 struct apply_wrap1 41 42 { 43 typedef typename F::template apply< 44 T1 45 >::type type; 46 47 }; 48 49 /// workaround for ETI bug 50 template<> 51 struct apply_wrap1< int,int > 52 { 53 typedef int type; 54 }; 55 56 template< 57 typename F, typename T1, typename T2 58 59 > 60 struct apply_wrap2 61 62 { 63 typedef typename F::template apply< 64 T1, T2 65 >::type type; 66 67 }; 68 69 /// workaround for ETI bug 70 template<> 71 struct apply_wrap2< int,int,int > 72 { 73 typedef int type; 74 }; 75 76 template< 77 typename F, typename T1, typename T2, typename T3 78 79 > 80 struct apply_wrap3 81 82 { 83 typedef typename F::template apply< 84 T1, T2, T3 85 >::type type; 86 87 }; 88 89 /// workaround for ETI bug 90 template<> 91 struct apply_wrap3< int,int,int,int > 92 { 93 typedef int type; 94 }; 95 96 template< 97 typename F, typename T1, typename T2, typename T3, typename T4 98 99 > 100 struct apply_wrap4 101 102 { 103 typedef typename F::template apply< 104 T1, T2, T3, T4 105 >::type type; 106 107 }; 108 109 /// workaround for ETI bug 110 template<> 111 struct apply_wrap4< int,int,int,int,int > 112 { 113 typedef int type; 114 }; 115 116 template< 117 typename F, typename T1, typename T2, typename T3, typename T4 118 , typename T5 119 120 > 121 struct apply_wrap5 122 123 { 124 typedef typename F::template apply< 125 T1, T2, T3, T4, T5 126 >::type type; 127 128 }; 129 130 /// workaround for ETI bug 131 template<> 132 struct apply_wrap5< int,int,int,int,int,int > 133 { 134 typedef int type; 135 }; 136 137 }} 138 139