1 2 // Copyright Peter Dimov 2001-2002 3 // Copyright Aleksey Gurtovoy 2001-2004 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 // 9 10 // *Preprocessed* version of the main "arg.hpp" header 11 // -- DO NOT modify by hand! 12 13 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 14 template<> struct arg< -1 > 15 { 16 BOOST_STATIC_CONSTANT(int, value = -1); 17 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 18 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 19 20 template< 21 typename U1, typename U2, typename U3, typename U4, typename U5 22 > 23 struct apply 24 { 25 typedef U1 type; 26 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 27 }; 28 }; 29 30 template<> struct arg<1> 31 { 32 BOOST_STATIC_CONSTANT(int, value = 1); 33 typedef arg<2> next; 34 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 35 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 36 37 template< 38 typename U1, typename U2, typename U3, typename U4, typename U5 39 > 40 struct apply 41 { 42 typedef U1 type; 43 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 44 }; 45 }; 46 47 template<> struct arg<2> 48 { 49 BOOST_STATIC_CONSTANT(int, value = 2); 50 typedef arg<3> next; 51 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 52 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 53 54 template< 55 typename U1, typename U2, typename U3, typename U4, typename U5 56 > 57 struct apply 58 { 59 typedef U2 type; 60 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 61 }; 62 }; 63 64 template<> struct arg<3> 65 { 66 BOOST_STATIC_CONSTANT(int, value = 3); 67 typedef arg<4> next; 68 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 69 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 70 71 template< 72 typename U1, typename U2, typename U3, typename U4, typename U5 73 > 74 struct apply 75 { 76 typedef U3 type; 77 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 78 }; 79 }; 80 81 template<> struct arg<4> 82 { 83 BOOST_STATIC_CONSTANT(int, value = 4); 84 typedef arg<5> next; 85 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 86 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 87 88 template< 89 typename U1, typename U2, typename U3, typename U4, typename U5 90 > 91 struct apply 92 { 93 typedef U4 type; 94 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 95 }; 96 }; 97 98 template<> struct arg<5> 99 { 100 BOOST_STATIC_CONSTANT(int, value = 5); 101 typedef arg<6> next; 102 BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) 103 BOOST_MPL_AUX_ARG_TYPEDEF(na, type) 104 105 template< 106 typename U1, typename U2, typename U3, typename U4, typename U5 107 > 108 struct apply 109 { 110 typedef U5 type; 111 BOOST_MPL_AUX_ASSERT_NOT_NA(type); 112 }; 113 }; 114 115 BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) 116 117 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 118