mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-02 11:28:20 +00:00
Map not int enum to correct underlying_type (#1286)
* Map not int enum to correct underlying_type * Use non-zero constant in TestFixedEnum
This commit is contained in:
parent
345ba07f1d
commit
bcd9b9331a
@ -825,8 +825,8 @@ template <typename Context> struct arg_mapper {
|
||||
FMT_ENABLE_IF(std::is_enum<T>::value &&
|
||||
!has_formatter<T, Context>::value &&
|
||||
!has_fallback_formatter<T, Context>::value)>
|
||||
FMT_CONSTEXPR int map(const T& val) {
|
||||
return static_cast<int>(val);
|
||||
FMT_CONSTEXPR auto map(const T& val) -> decltype(map(static_cast<typename std::underlying_type<T>::type>(val))) {
|
||||
return map(static_cast<typename std::underlying_type<T>::type>(val));
|
||||
}
|
||||
template <typename T,
|
||||
FMT_ENABLE_IF(!is_string<T>::value && !is_char<T>::value &&
|
||||
|
@ -1906,9 +1906,9 @@ TEST(FormatTest, FormatterNotSpecialized) {
|
||||
}
|
||||
|
||||
#if FMT_HAS_FEATURE(cxx_strong_enums)
|
||||
enum TestFixedEnum : short { B };
|
||||
enum TestFixedEnum : short { B = 1 };
|
||||
|
||||
TEST(FormatTest, FixedEnum) { EXPECT_EQ("0", fmt::format("{}", B)); }
|
||||
TEST(FormatTest, FixedEnum) { EXPECT_EQ("1", fmt::format("{}", B)); }
|
||||
#endif
|
||||
|
||||
using buffer_range = fmt::buffer_range<char>;
|
||||
|
Loading…
Reference in New Issue
Block a user