Specialize is_char for character types
This commit is contained in:
parent
7893d85394
commit
064ce6b6c0
@ -443,7 +443,11 @@ using string_view = basic_string_view<char>;
|
||||
using wstring_view = basic_string_view<wchar_t>;
|
||||
|
||||
/** Specifies if ``T`` is a character type. Can be specialized by users. */
|
||||
template <typename T> struct is_char : std::is_integral<T> {};
|
||||
template <typename T> struct is_char : std::false_type {};
|
||||
template <> struct is_char<char> : std::true_type {};
|
||||
template <> struct is_char<wchar_t> : std::true_type {};
|
||||
template <> struct is_char<char16_t> : std::true_type {};
|
||||
template <> struct is_char<char32_t> : std::true_type {};
|
||||
|
||||
/**
|
||||
\rst
|
||||
|
@ -400,6 +400,7 @@ void buffer<T>::append(const U* begin, const U* end) {
|
||||
// A UTF-8 code unit type.
|
||||
enum char8_t : unsigned char {};
|
||||
#endif
|
||||
template <> struct is_char<char8_t> : std::true_type {};
|
||||
|
||||
// A UTF-8 string view.
|
||||
class u8string_view : public basic_string_view<char8_t> {
|
||||
|
Loading…
Reference in New Issue
Block a user