diff --git a/include/regex b/include/regex index bebbaf09..5e1c37c6 100644 --- a/include/regex +++ b/include/regex @@ -1192,7 +1192,8 @@ regex_traits<_CharT>::__lookup_collatename(_ForwardIterator __f, // lookup_classname -ctype_base::mask _LIBCPP_FUNC_VIS __get_classname(const char* __s, bool __icase); +regex_traits::char_class_type _LIBCPP_FUNC_VIS +__get_classname(const char* __s, bool __icase); template template @@ -2184,8 +2185,8 @@ class __bracket_expression vector > __ranges_; vector > __digraphs_; vector __equivalences_; - ctype_base::mask __mask_; - ctype_base::mask __neg_mask_; + typename regex_traits<_CharT>::char_class_type __mask_; + typename regex_traits<_CharT>::char_class_type __neg_mask_; bool __negate_; bool __icase_; bool __collate_; @@ -2281,10 +2282,10 @@ public: void __add_equivalence(const string_type& __s) {__equivalences_.push_back(__s);} _LIBCPP_INLINE_VISIBILITY - void __add_class(ctype_base::mask __mask) + void __add_class(typename regex_traits<_CharT>::char_class_type __mask) {__mask_ |= __mask;} _LIBCPP_INLINE_VISIBILITY - void __add_neg_class(ctype_base::mask __mask) + void __add_neg_class(typename regex_traits<_CharT>::char_class_type __mask) {__neg_mask_ |= __mask;} }; diff --git a/src/regex.cpp b/src/regex.cpp index fb820e2b..17dd6eaa 100644 --- a/src/regex.cpp +++ b/src/regex.cpp @@ -207,7 +207,7 @@ const collationnames collatenames[] = struct classnames { const char* elem_; - ctype_base::mask mask_; + regex_traits::char_class_type mask_; }; #if defined(__clang__) @@ -254,12 +254,12 @@ __get_collation_name(const char* s) return r; } -ctype_base::mask +regex_traits::char_class_type __get_classname(const char* s, bool __icase) { const classnames* i = _VSTD::lower_bound(begin(ClassNames), end(ClassNames), s, use_strcmp()); - ctype_base::mask r = 0; + regex_traits::char_class_type r = 0; if (i != end(ClassNames) && strcmp(s, i->elem_) == 0) { r = i->mask_; diff --git a/test/re/re.traits/lookup_classname.pass.cpp b/test/re/re.traits/lookup_classname.pass.cpp index 75c08885..0b1b18eb 100644 --- a/test/re/re.traits/lookup_classname.pass.cpp +++ b/test/re/re.traits/lookup_classname.pass.cpp @@ -22,7 +22,9 @@ template void -test(const char_type* A, std::ctype_base::mask expected, bool icase = false) +test(const char_type* A, + typename std::regex_traits::char_class_type expected, + bool icase = false) { std::regex_traits t; typedef forward_iterator F;