@@ -2509,16 +2509,26 @@ template <auto V, typename A, typename B, typename... Ts, typename Parameters> s
2509
2509
return pcre_context{ctll::push_front(sequence<A,B>(), ctll::list<Ts...>()), subject.parameters};
2510
2510
}
2511
2511
// 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};
2514
2514
}
2515
+
2515
2516
// make_sequence (make string)
2516
2517
template <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) {
2517
2518
return pcre_context{ctll::push_front(string<A,B>(), ctll::list<Ts...>()), subject.parameters};
2518
2519
}
2519
2520
// 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};
2522
2532
}
2523
2533
2524
2534
#endif
@@ -4027,7 +4037,8 @@ template <typename Iterator> struct string_match_result {
4027
4037
4028
4038
template <typename CharT, typename Iterator, typename EndIterator> constexpr CTRE_FORCE_INLINE bool compare_character(CharT c, Iterator & it, const EndIterator & end) {
4029
4039
if (it != end) {
4030
- return *it++ == c;
4040
+ using char_type = decltype(*it);
4041
+ return *it++ == static_cast<char_type>(c);
4031
4042
}
4032
4043
return false;
4033
4044
}
0 commit comments