1
0
Fork 0
mirror of https://github.com/Neargye/magic_enum.git synced 2026-01-09 23:34:23 +00:00

std::size_t -> std::uint16_t

This commit is contained in:
neargye 2022-08-05 15:36:37 +04:00
parent 43a9272f45
commit 35a3c7c9da

View file

@ -196,22 +196,22 @@ struct range_max : std::integral_constant<int, MAGIC_ENUM_RANGE_MAX> {};
template <typename T> template <typename T>
struct range_max<T, std::void_t<decltype(customize::enum_range<T>::max)>> : std::integral_constant<decltype(customize::enum_range<T>::max), customize::enum_range<T>::max> {}; struct range_max<T, std::void_t<decltype(customize::enum_range<T>::max)>> : std::integral_constant<decltype(customize::enum_range<T>::max), customize::enum_range<T>::max> {};
template <std::size_t N> template <std::uint16_t N>
class static_string { class static_string {
public: public:
constexpr explicit static_string(string_view str) noexcept : static_string{str, std::make_index_sequence<N>{}} { constexpr explicit static_string(string_view str) noexcept : static_string{str, std::make_integer_sequence<std::uint16_t, N>{}} {
assert(str.size() == N); assert(str.size() == N);
} }
constexpr const char* data() const noexcept { return chars_; } constexpr const char* data() const noexcept { return chars_; }
constexpr std::size_t size() const noexcept { return N; } constexpr std::uint16_t size() const noexcept { return N; }
constexpr operator string_view() const noexcept { return {data(), size()}; } constexpr operator string_view() const noexcept { return {data(), size()}; }
private: private:
template <std::size_t... I> template <std::uint16_t... I>
constexpr static_string(string_view str, std::index_sequence<I...>) noexcept : chars_{str[I]..., '\0'} {} constexpr static_string(string_view str, std::integer_sequence<std::uint16_t, I...>) noexcept : chars_{str[I]..., '\0'} {}
char chars_[N + 1]; char chars_[N + 1];
}; };
@ -225,7 +225,7 @@ class static_string<0> {
constexpr const char* data() const noexcept { return nullptr; } constexpr const char* data() const noexcept { return nullptr; }
constexpr std::size_t size() const noexcept { return 0; } constexpr std::uint16_t size() const noexcept { return 0; }
constexpr operator string_view() const noexcept { return {}; } constexpr operator string_view() const noexcept { return {}; }
}; };