@@ -3690,6 +3690,8 @@ _BidIt1 _Compare_translate_both(_BidIt1 _Begin1, _BidIt1 _End1, _BidIt2 _Begin2,
3690
3690
// compare character ranges, translating characters in both ranges according to syntax options
3691
3691
if (_Sflags & regex_constants::icase) {
3692
3692
return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, _Cmp_icase<_RxTraits>{_Traits});
3693
+ } else if constexpr (_Is_any_of_v<_RxTraits, regex_traits<char>, regex_traits<wchar_t>>) {
3694
+ return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, equal_to<typename _RxTraits::char_type>{});
3693
3695
} else if (_Sflags & regex_constants::collate) {
3694
3696
return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, _Cmp_collate<_RxTraits>{_Traits});
3695
3697
} else {
@@ -3703,6 +3705,8 @@ _BidIt1 _Compare_translate_left(_BidIt1 _Begin1, _BidIt1 _End1, _BidIt2 _Begin2,
3703
3705
// compare character ranges, translating characters in the left range according to syntax options
3704
3706
if (_Sflags & regex_constants::icase) {
3705
3707
return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, _Cmp_icase_translateleft<_RxTraits>{_Traits});
3708
+ } else if constexpr (_Is_any_of_v<_RxTraits, regex_traits<char>, regex_traits<wchar_t>>) {
3709
+ return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, equal_to<typename _RxTraits::char_type>{});
3706
3710
} else if (_Sflags & regex_constants::collate) {
3707
3711
return _STD _Cmp_chrange(_Begin1, _End1, _Begin2, _End2, _Cmp_collate_translateleft<_RxTraits>{_Traits});
3708
3712
} else {
@@ -3717,6 +3721,8 @@ _BidIt1 _Search_translate_left(_BidIt1 _Begin1, _BidIt1 _End1, _BidIt2 _Begin2,
3717
3721
// after translating characters in the left sequence according to syntax options
3718
3722
if (_Sflags & regex_constants::icase) {
3719
3723
return _STD search(_Begin1, _End1, _Begin2, _End2, _Cmp_icase_translateleft<_RxTraits>{_Traits});
3724
+ } else if constexpr (_Is_any_of_v<_RxTraits, regex_traits<char>, regex_traits<wchar_t>>) {
3725
+ return _STD search(_Begin1, _End1, _Begin2, _End2, equal_to<typename _RxTraits::char_type>{});
3720
3726
} else if (_Sflags & regex_constants::collate) {
3721
3727
return _STD search(_Begin1, _End1, _Begin2, _End2, _Cmp_collate_translateleft<_RxTraits>{_Traits});
3722
3728
} else {
0 commit comments