| 870 | |
| 871 | template <typename E, enum_subtype S, std::size_t... I> |
| 872 | constexpr auto names(std::index_sequence<I...>) noexcept { |
| 873 | constexpr auto names = std::array<string_view, sizeof...(I)>{{enum_name_v<E, values_v<E, S>[I]>.str()...}}; |
| 874 | return names; |
| 875 | } |
| 876 | |
| 877 | template <typename E, enum_subtype S> |
| 878 | inline constexpr auto names_v = names<E, S>(std::make_index_sequence<count_v<E, S>>{}); |