Make char8_t a strongly-typed enum

This commit is contained in:
Victor Zverovich
2018-09-29 16:25:02 -07:00
parent 66992e90d2
commit e4fea22d15
3 changed files with 9 additions and 14 deletions

View File

@@ -206,7 +206,7 @@ FMT_FUNC size_t internal::count_code_points(u8string_view s) {
const char8_t *data = s.data();
int num_code_points = 0;
for (size_t i = 0, size = s.size(); i != size; ++i) {
if ((data[i].value & 0xc0) != 0x80)
if ((data[i] & 0xc0) != 0x80)
++num_code_points;
}
return num_code_points;

View File

@@ -437,12 +437,7 @@ void basic_buffer<T>::append(const U *begin, const U *end) {
} // namespace internal
// A UTF-8 code unit type.
struct char8_t {
char value;
FMT_CONSTEXPR FMT_EXPLICIT operator bool() const FMT_NOEXCEPT {
return value != 0;
}
};
enum char8_t: unsigned char {};
// A UTF-8 string view.
class u8string_view : public basic_string_view<char8_t> {