Fix regex_traits<T>::char_class_type for Android.
Android can't use ctype_base::mask for its char_class_type because the bionic ctype implementation comes from openbsd, which uses an 8-bit ctype mask which isn't large enough to encode the standard ctypes and __regex_word. Change-Id: Iee4b8dd465ff2cb358ed2b10e1c3a499437403b7
This commit is contained in:
@@ -962,9 +962,18 @@ public:
|
|||||||
typedef _CharT char_type;
|
typedef _CharT char_type;
|
||||||
typedef basic_string<char_type> string_type;
|
typedef basic_string<char_type> string_type;
|
||||||
typedef locale locale_type;
|
typedef locale locale_type;
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
typedef uint16_t char_class_type;
|
||||||
|
#else
|
||||||
typedef ctype_base::mask char_class_type;
|
typedef ctype_base::mask char_class_type;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
static const char_class_type __regex_word = 0x8000;
|
||||||
|
#else
|
||||||
static const char_class_type __regex_word = 0x80;
|
static const char_class_type __regex_word = 0x80;
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
locale __loc_;
|
locale __loc_;
|
||||||
const ctype<char_type>* __ct_;
|
const ctype<char_type>* __ct_;
|
||||||
|
|||||||
Reference in New Issue
Block a user