Base regex code on char_class_type.

__get_classname() and __bracket_expression were assuming that
char_class_type was ctype_base::mask rather than using
regex_traits<_CharT>::char_class_type.

This change allows char_class_type to be defined to something other than
ctype_base::mask so that the implementation will still work for
platforms with an 8-bit ctype mask (such as Android and OpenBSD).


git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@214201 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Albert
2014-07-29 19:23:39 +00:00
parent e515bbda1b
commit 1757386944
3 changed files with 12 additions and 9 deletions

View File

@@ -22,7 +22,9 @@
template <class char_type>
void
test(const char_type* A, std::ctype_base::mask expected, bool icase = false)
test(const char_type* A,
typename std::regex_traits<char_type>::char_class_type expected,
bool icase = false)
{
std::regex_traits<char_type> t;
typedef forward_iterator<const char_type*> F;