diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6ddd5871..210f3abd 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -14,6 +14,14 @@ function(add_fmt_test name) add_test(NAME ${name} COMMAND ${name}) endfunction() +check_cxx_source_compiles(" + enum C : char {A}; + int main() {}" + HAVE_ENUM_BASE) +if (HAVE_ENUM_BASE) + add_definitions(-DFMT_USE_ENUM_BASE=1) +endif () + add_fmt_test(gtest-extra-test) add_fmt_test(format-test) add_fmt_test(format-impl-test CUSTOM_LINK) diff --git a/test/util-test.cc b/test/util-test.cc index 92d22d35..63925287 100644 --- a/test/util-test.cc +++ b/test/util-test.cc @@ -837,3 +837,11 @@ TEST(UtilTest, IsConvertibleToInt) { EXPECT_TRUE(fmt::internal::IsConvertibleToInt::value); EXPECT_FALSE(fmt::internal::IsConvertibleToInt::value); } + +#if FMT_USE_ENUM_BASE +enum TestEnum : char {TestValue}; +TEST(UtilTest, IsEnumConvertibleToInt) { + EXPECT_TRUE(fmt::internal::IsConvertibleToInt::value); +} +#endif +