@@ -2509,16 +2509,26 @@ template <auto V, typename A, typename B, typename... Ts, typename Parameters> s
25092509 return pcre_context{ctll::push_front(sequence<A,B>(), ctll::list<Ts...>()), subject.parameters};
25102510}
25112511// make_sequence (concat)
2512- template <auto V, typename... As , typename B , typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<sequence<As ...>,B ,Ts...>, Parameters> subject) {
2513- return pcre_context{ctll::push_front(sequence<B,As ...>(), ctll::list<Ts...>()), subject.parameters};
2512+ template <auto V, typename A , typename... Bs , typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<sequence<Bs ...>,A ,Ts...>, Parameters> subject) {
2513+ return pcre_context{ctll::push_front(sequence<A,Bs ...>(), ctll::list<Ts...>()), subject.parameters};
25142514}
2515+
25152516// make_sequence (make string)
25162517template <auto V, auto A, auto B, typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<character<B>,character<A>,Ts...>, Parameters> subject) {
25172518 return pcre_context{ctll::push_front(string<A,B>(), ctll::list<Ts...>()), subject.parameters};
25182519}
25192520// make_sequence (concat string)
2520- template <auto V, auto... As, auto B, typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<string<As...>,character<B>,Ts...>, Parameters> subject) {
2521- return pcre_context{ctll::push_front(string<B,As...>(), ctll::list<Ts...>()), subject.parameters};
2521+ template <auto V, auto A, auto... Bs, typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<string<Bs...>,character<A>,Ts...>, Parameters> subject) {
2522+ return pcre_context{ctll::push_front(string<A,Bs...>(), ctll::list<Ts...>()), subject.parameters};
2523+ }
2524+
2525+ // make_sequence (make string in front of different items)
2526+ template <auto V, auto A, auto B, typename... Sq, typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<sequence<character<B>,Sq...>,character<A>,Ts...>, Parameters> subject) {
2527+ return pcre_context{ctll::push_front(sequence<string<A,B>,Sq...>(), ctll::list<Ts...>()), subject.parameters};
2528+ }
2529+ // make_sequence (concat string in front of different items)
2530+ template <auto V, auto A, auto... Bs, typename... Sq, typename... Ts, typename Parameters> static constexpr auto apply(pcre::make_sequence, ctll::term<V>, pcre_context<ctll::list<sequence<string<Bs...>,Sq...>,character<A>,Ts...>, Parameters> subject) {
2531+ return pcre_context{ctll::push_front(sequence<string<A,Bs...>,Sq...>(), ctll::list<Ts...>()), subject.parameters};
25222532}
25232533
25242534#endif
@@ -4027,7 +4037,8 @@ template <typename Iterator> struct string_match_result {
40274037
40284038template <typename CharT, typename Iterator, typename EndIterator> constexpr CTRE_FORCE_INLINE bool compare_character(CharT c, Iterator & it, const EndIterator & end) {
40294039 if (it != end) {
4030- return *it++ == c;
4040+ using char_type = decltype(*it);
4041+ return *it++ == static_cast<char_type>(c);
40314042 }
40324043 return false;
40334044}
0 commit comments