Rename is_char to is_code_unit

This commit is contained in:
Victor Zverovich
2025-08-24 09:30:50 -07:00
parent a77efa4b4a
commit b5c4d25cd1

View File

@@ -903,24 +903,20 @@ FMT_END_EXPORT
namespace detail { namespace detail {
// DEPRECATED! Will be merged with is_char // Specifies if `T` is a code unit type.
template <typename T> struct is_xchar : std::false_type {}; template <typename T> struct is_code_unit : std::false_type {};
template <> struct is_xchar<wchar_t> : std::true_type {}; template <> struct is_code_unit<char> : std::true_type {};
template <> struct is_xchar<char16_t> : std::true_type {}; template <> struct is_code_unit<wchar_t> : std::true_type {};
template <> struct is_xchar<char32_t> : std::true_type {}; template <> struct is_code_unit<char16_t> : std::true_type {};
template <> struct is_code_unit<char32_t> : std::true_type {};
#ifdef __cpp_char8_t #ifdef __cpp_char8_t
template <> template <> struct is_code_unit<char8_t> : bool_constant<is_utf8_enabled> {};
struct is_xchar<char8_t> : bool_constant<detail::is_utf8_enabled> {};
#endif #endif
// Specifies if `T` is a character (code unit) type.
template <typename T> struct is_char : is_xchar<T> {};
template <> struct is_char<char> : std::true_type {};
// Constructs fmt::basic_string_view<Char> from types implicitly convertible // Constructs fmt::basic_string_view<Char> from types implicitly convertible
// to it, deducing Char. Explicitly convertible types such as the ones returned // to it, deducing Char. Explicitly convertible types such as the ones returned
// from FMT_STRING are intentionally excluded. // from FMT_STRING are intentionally excluded.
template <typename Char, FMT_ENABLE_IF(is_char<Char>::value)> template <typename Char, FMT_ENABLE_IF(is_code_unit<Char>::value)>
constexpr auto to_string_view(const Char* s) -> basic_string_view<Char> { constexpr auto to_string_view(const Char* s) -> basic_string_view<Char> {
return s; return s;
} }
@@ -1165,7 +1161,7 @@ template <typename Char> struct type_mapper {
static auto map(ubitint<N>) static auto map(ubitint<N>)
-> conditional_t<N <= 64, unsigned long long, void>; -> conditional_t<N <= 64, unsigned long long, void>;
template <typename T, FMT_ENABLE_IF(is_char<T>::value)> template <typename T, FMT_ENABLE_IF(is_code_unit<T>::value)>
static auto map(T) -> conditional_t< static auto map(T) -> conditional_t<
std::is_same<T, char>::value || std::is_same<T, Char>::value, Char, void>; std::is_same<T, char>::value || std::is_same<T, Char>::value, Char, void>;
@@ -2185,7 +2181,7 @@ template <typename Context> class value {
static_assert(N <= 64, "unsupported _BitInt"); static_assert(N <= 64, "unsupported _BitInt");
} }
template <typename T, FMT_ENABLE_IF(is_char<T>::value)> template <typename T, FMT_ENABLE_IF(is_code_unit<T>::value)>
constexpr FMT_INLINE value(T x FMT_BUILTIN) : char_value(x) { constexpr FMT_INLINE value(T x FMT_BUILTIN) : char_value(x) {
static_assert( static_assert(
std::is_same<T, char>::value || std::is_same<T, char_type>::value, std::is_same<T, char>::value || std::is_same<T, char_type>::value,