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/quote.hpp" header 10 // -- DO NOT modify by hand! 11 12 namespace boost { namespace mpl { 13 14 template< typename T, bool has_type_ > 15 struct quote_impl 16 { 17 typedef typename T::type type; 18 }; 19 20 template< typename T > 21 struct quote_impl< T,false > 22 { 23 typedef T type; 24 }; 25 26 template< 27 template< typename P1 > class F 28 , typename Tag = void_ 29 > 30 struct quote1 31 { 32 template< typename U1 > struct apply 33 34 : quote_impl< 35 F<U1> 36 , aux::has_type< F<U1> >::value 37 > 38 39 { 40 }; 41 }; 42 43 template< 44 template< typename P1, typename P2 > class F 45 , typename Tag = void_ 46 > 47 struct quote2 48 { 49 template< typename U1, typename U2 > struct apply 50 51 : quote_impl< 52 F< U1,U2 > 53 , aux::has_type< F< U1,U2 > >::value 54 > 55 56 { 57 }; 58 }; 59 60 template< 61 template< typename P1, typename P2, typename P3 > class F 62 , typename Tag = void_ 63 > 64 struct quote3 65 { 66 template< typename U1, typename U2, typename U3 > struct apply 67 68 : quote_impl< 69 F< U1,U2,U3 > 70 , aux::has_type< F< U1,U2,U3 > >::value 71 > 72 73 { 74 }; 75 }; 76 77 template< 78 template< typename P1, typename P2, typename P3, typename P4 > class F 79 , typename Tag = void_ 80 > 81 struct quote4 82 { 83 template< 84 typename U1, typename U2, typename U3, typename U4 85 > 86 struct apply 87 88 : quote_impl< 89 F< U1,U2,U3,U4 > 90 , aux::has_type< F< U1,U2,U3,U4 > >::value 91 > 92 93 { 94 }; 95 }; 96 97 template< 98 template< 99 typename P1, typename P2, typename P3, typename P4 100 , typename P5 101 > 102 class F 103 , typename Tag = void_ 104 > 105 struct quote5 106 { 107 template< 108 typename U1, typename U2, typename U3, typename U4 109 , typename U5 110 > 111 struct apply 112 113 : quote_impl< 114 F< U1,U2,U3,U4,U5 > 115 , aux::has_type< F< U1,U2,U3,U4,U5 > >::value 116 > 117 118 { 119 }; 120 }; 121 122 }} 123 124