Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:23

0001     ///////////////////////////////////////////////////////////////////////////////
0002     /// \file lambda_matches.hpp
0003     /// Specializations of the lambda_matches template
0004     //
0005     //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006     //  Software License, Version 1.0. (See accompanying file
0007     //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008     template<
0009         template<typename , typename> class T
0010         , typename Expr0 , typename Expr1
0011         , typename Grammar0 , typename Grammar1
0012     >
0013     struct lambda_matches<
0014         T<Expr0 , Expr1>
0015       , T<Grammar0 , Grammar1>
0016         BOOST_PROTO_TEMPLATE_ARITY_PARAM(2)
0017     >
0018       : and_2<
0019             lambda_matches< Expr0 , Grammar0 >::value,
0020             lambda_matches< Expr1 , Grammar1 >
0021         >
0022     {};
0023     template<
0024         template<typename , typename , typename> class T
0025         , typename Expr0 , typename Expr1 , typename Expr2
0026         , typename Grammar0 , typename Grammar1 , typename Grammar2
0027     >
0028     struct lambda_matches<
0029         T<Expr0 , Expr1 , Expr2>
0030       , T<Grammar0 , Grammar1 , Grammar2>
0031         BOOST_PROTO_TEMPLATE_ARITY_PARAM(3)
0032     >
0033       : and_3<
0034             lambda_matches< Expr0 , Grammar0 >::value,
0035             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 >
0036         >
0037     {};
0038     template<
0039         template<typename , typename , typename , typename> class T
0040         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3
0041         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3
0042     >
0043     struct lambda_matches<
0044         T<Expr0 , Expr1 , Expr2 , Expr3>
0045       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3>
0046         BOOST_PROTO_TEMPLATE_ARITY_PARAM(4)
0047     >
0048       : and_4<
0049             lambda_matches< Expr0 , Grammar0 >::value,
0050             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 >
0051         >
0052     {};
0053     template<
0054         template<typename , typename , typename , typename , typename> class T
0055         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4
0056         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4
0057     >
0058     struct lambda_matches<
0059         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4>
0060       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4>
0061         BOOST_PROTO_TEMPLATE_ARITY_PARAM(5)
0062     >
0063       : and_5<
0064             lambda_matches< Expr0 , Grammar0 >::value,
0065             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 >
0066         >
0067     {};
0068     template<
0069         template<typename , typename , typename , typename , typename , typename> class T
0070         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5
0071         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5
0072     >
0073     struct lambda_matches<
0074         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5>
0075       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5>
0076         BOOST_PROTO_TEMPLATE_ARITY_PARAM(6)
0077     >
0078       : and_6<
0079             lambda_matches< Expr0 , Grammar0 >::value,
0080             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 >
0081         >
0082     {};
0083     template<
0084         template<typename , typename , typename , typename , typename , typename , typename> class T
0085         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6
0086         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6
0087     >
0088     struct lambda_matches<
0089         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6>
0090       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6>
0091         BOOST_PROTO_TEMPLATE_ARITY_PARAM(7)
0092     >
0093       : and_7<
0094             lambda_matches< Expr0 , Grammar0 >::value,
0095             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 >
0096         >
0097     {};
0098     template<
0099         template<typename , typename , typename , typename , typename , typename , typename , typename> class T
0100         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7
0101         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7
0102     >
0103     struct lambda_matches<
0104         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7>
0105       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7>
0106         BOOST_PROTO_TEMPLATE_ARITY_PARAM(8)
0107     >
0108       : and_8<
0109             lambda_matches< Expr0 , Grammar0 >::value,
0110             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 >
0111         >
0112     {};
0113     template<
0114         template<typename , typename , typename , typename , typename , typename , typename , typename , typename> class T
0115         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8
0116         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8
0117     >
0118     struct lambda_matches<
0119         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8>
0120       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8>
0121         BOOST_PROTO_TEMPLATE_ARITY_PARAM(9)
0122     >
0123       : and_9<
0124             lambda_matches< Expr0 , Grammar0 >::value,
0125             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 >
0126         >
0127     {};
0128     template<
0129         template<typename , typename , typename , typename , typename , typename , typename , typename , typename , typename> class T
0130         , typename Expr0 , typename Expr1 , typename Expr2 , typename Expr3 , typename Expr4 , typename Expr5 , typename Expr6 , typename Expr7 , typename Expr8 , typename Expr9
0131         , typename Grammar0 , typename Grammar1 , typename Grammar2 , typename Grammar3 , typename Grammar4 , typename Grammar5 , typename Grammar6 , typename Grammar7 , typename Grammar8 , typename Grammar9
0132     >
0133     struct lambda_matches<
0134         T<Expr0 , Expr1 , Expr2 , Expr3 , Expr4 , Expr5 , Expr6 , Expr7 , Expr8 , Expr9>
0135       , T<Grammar0 , Grammar1 , Grammar2 , Grammar3 , Grammar4 , Grammar5 , Grammar6 , Grammar7 , Grammar8 , Grammar9>
0136         BOOST_PROTO_TEMPLATE_ARITY_PARAM(10)
0137     >
0138       : and_10<
0139             lambda_matches< Expr0 , Grammar0 >::value,
0140             lambda_matches< Expr1 , Grammar1 > , lambda_matches< Expr2 , Grammar2 > , lambda_matches< Expr3 , Grammar3 > , lambda_matches< Expr4 , Grammar4 > , lambda_matches< Expr5 , Grammar5 > , lambda_matches< Expr6 , Grammar6 > , lambda_matches< Expr7 , Grammar7 > , lambda_matches< Expr8 , Grammar8 > , lambda_matches< Expr9 , Grammar9 >
0141         >
0142     {};