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