File indexing completed on 2025-01-18 09:50:26
0001
0002
0003
0004
0005
0006
0007
0008 template<typename Args, typename Back, long To>
0009 struct vararg_matches_impl<Args, Back, 2, To>
0010 : and_2<
0011 matches_<
0012 typename detail::expr_traits<typename Args::child1>::value_type::proto_derived_expr
0013 , typename detail::expr_traits<typename Args::child1>::value_type::proto_grammar
0014 , Back
0015 >::value
0016 , vararg_matches_impl<Args, Back, 2 + 1, To>
0017 >
0018 {};
0019 template<typename Args, typename Back>
0020 struct vararg_matches_impl<Args, Back, 2, 2>
0021 : matches_<
0022 typename detail::expr_traits<typename Args::child1>::value_type::proto_derived_expr
0023 , typename detail::expr_traits<typename Args::child1>::value_type::proto_grammar
0024 , Back
0025 >
0026 {};
0027 template<typename Args, typename Back, long To>
0028 struct vararg_matches_impl<Args, Back, 3, To>
0029 : and_2<
0030 matches_<
0031 typename detail::expr_traits<typename Args::child2>::value_type::proto_derived_expr
0032 , typename detail::expr_traits<typename Args::child2>::value_type::proto_grammar
0033 , Back
0034 >::value
0035 , vararg_matches_impl<Args, Back, 3 + 1, To>
0036 >
0037 {};
0038 template<typename Args, typename Back>
0039 struct vararg_matches_impl<Args, Back, 3, 3>
0040 : matches_<
0041 typename detail::expr_traits<typename Args::child2>::value_type::proto_derived_expr
0042 , typename detail::expr_traits<typename Args::child2>::value_type::proto_grammar
0043 , Back
0044 >
0045 {};
0046 template<typename Args, typename Back, long To>
0047 struct vararg_matches_impl<Args, Back, 4, To>
0048 : and_2<
0049 matches_<
0050 typename detail::expr_traits<typename Args::child3>::value_type::proto_derived_expr
0051 , typename detail::expr_traits<typename Args::child3>::value_type::proto_grammar
0052 , Back
0053 >::value
0054 , vararg_matches_impl<Args, Back, 4 + 1, To>
0055 >
0056 {};
0057 template<typename Args, typename Back>
0058 struct vararg_matches_impl<Args, Back, 4, 4>
0059 : matches_<
0060 typename detail::expr_traits<typename Args::child3>::value_type::proto_derived_expr
0061 , typename detail::expr_traits<typename Args::child3>::value_type::proto_grammar
0062 , Back
0063 >
0064 {};
0065 template<typename Args, typename Back, long To>
0066 struct vararg_matches_impl<Args, Back, 5, To>
0067 : and_2<
0068 matches_<
0069 typename detail::expr_traits<typename Args::child4>::value_type::proto_derived_expr
0070 , typename detail::expr_traits<typename Args::child4>::value_type::proto_grammar
0071 , Back
0072 >::value
0073 , vararg_matches_impl<Args, Back, 5 + 1, To>
0074 >
0075 {};
0076 template<typename Args, typename Back>
0077 struct vararg_matches_impl<Args, Back, 5, 5>
0078 : matches_<
0079 typename detail::expr_traits<typename Args::child4>::value_type::proto_derived_expr
0080 , typename detail::expr_traits<typename Args::child4>::value_type::proto_grammar
0081 , Back
0082 >
0083 {};
0084 template<typename Args, typename Back, long To>
0085 struct vararg_matches_impl<Args, Back, 6, To>
0086 : and_2<
0087 matches_<
0088 typename detail::expr_traits<typename Args::child5>::value_type::proto_derived_expr
0089 , typename detail::expr_traits<typename Args::child5>::value_type::proto_grammar
0090 , Back
0091 >::value
0092 , vararg_matches_impl<Args, Back, 6 + 1, To>
0093 >
0094 {};
0095 template<typename Args, typename Back>
0096 struct vararg_matches_impl<Args, Back, 6, 6>
0097 : matches_<
0098 typename detail::expr_traits<typename Args::child5>::value_type::proto_derived_expr
0099 , typename detail::expr_traits<typename Args::child5>::value_type::proto_grammar
0100 , Back
0101 >
0102 {};
0103 template<typename Args, typename Back, long To>
0104 struct vararg_matches_impl<Args, Back, 7, To>
0105 : and_2<
0106 matches_<
0107 typename detail::expr_traits<typename Args::child6>::value_type::proto_derived_expr
0108 , typename detail::expr_traits<typename Args::child6>::value_type::proto_grammar
0109 , Back
0110 >::value
0111 , vararg_matches_impl<Args, Back, 7 + 1, To>
0112 >
0113 {};
0114 template<typename Args, typename Back>
0115 struct vararg_matches_impl<Args, Back, 7, 7>
0116 : matches_<
0117 typename detail::expr_traits<typename Args::child6>::value_type::proto_derived_expr
0118 , typename detail::expr_traits<typename Args::child6>::value_type::proto_grammar
0119 , Back
0120 >
0121 {};
0122 template<typename Args, typename Back, long To>
0123 struct vararg_matches_impl<Args, Back, 8, To>
0124 : and_2<
0125 matches_<
0126 typename detail::expr_traits<typename Args::child7>::value_type::proto_derived_expr
0127 , typename detail::expr_traits<typename Args::child7>::value_type::proto_grammar
0128 , Back
0129 >::value
0130 , vararg_matches_impl<Args, Back, 8 + 1, To>
0131 >
0132 {};
0133 template<typename Args, typename Back>
0134 struct vararg_matches_impl<Args, Back, 8, 8>
0135 : matches_<
0136 typename detail::expr_traits<typename Args::child7>::value_type::proto_derived_expr
0137 , typename detail::expr_traits<typename Args::child7>::value_type::proto_grammar
0138 , Back
0139 >
0140 {};
0141 template<typename Args, typename Back, long To>
0142 struct vararg_matches_impl<Args, Back, 9, To>
0143 : and_2<
0144 matches_<
0145 typename detail::expr_traits<typename Args::child8>::value_type::proto_derived_expr
0146 , typename detail::expr_traits<typename Args::child8>::value_type::proto_grammar
0147 , Back
0148 >::value
0149 , vararg_matches_impl<Args, Back, 9 + 1, To>
0150 >
0151 {};
0152 template<typename Args, typename Back>
0153 struct vararg_matches_impl<Args, Back, 9, 9>
0154 : matches_<
0155 typename detail::expr_traits<typename Args::child8>::value_type::proto_derived_expr
0156 , typename detail::expr_traits<typename Args::child8>::value_type::proto_grammar
0157 , Back
0158 >
0159 {};
0160 template<typename Args, typename Back, long To>
0161 struct vararg_matches_impl<Args, Back, 10, To>
0162 : and_2<
0163 matches_<
0164 typename detail::expr_traits<typename Args::child9>::value_type::proto_derived_expr
0165 , typename detail::expr_traits<typename Args::child9>::value_type::proto_grammar
0166 , Back
0167 >::value
0168 , vararg_matches_impl<Args, Back, 10 + 1, To>
0169 >
0170 {};
0171 template<typename Args, typename Back>
0172 struct vararg_matches_impl<Args, Back, 10, 10>
0173 : matches_<
0174 typename detail::expr_traits<typename Args::child9>::value_type::proto_derived_expr
0175 , typename detail::expr_traits<typename Args::child9>::value_type::proto_grammar
0176 , Back
0177 >
0178 {};