workaround MSVC bug

This commit is contained in:
Alexey Ochapov 2020-12-25 21:45:58 +03:00
parent 0446614706
commit 417b35b5b3
No known key found for this signature in database
GPG Key ID: 9DC52E8F031B8DA8

View File

@ -2111,12 +2111,14 @@ FMT_CONSTEXPR OutputIt write(OutputIt out, T value) {
return base_iterator(out, it); return base_iterator(out, it);
} }
// FMT_ENABLE_IF() condition separated to workaround MSVC bug
template < template <
typename Char, typename OutputIt, typename T, typename Char, typename OutputIt, typename T,
FMT_ENABLE_IF( bool check =
std::is_enum<T>::value && !std::is_same<T, Char>::value && std::is_enum<T>::value && !std::is_same<T, Char>::value &&
mapped_type_constant<T, basic_format_context<OutputIt, Char>>::value != mapped_type_constant<T, basic_format_context<OutputIt, Char>>::value !=
type::custom_type)> type::custom_type,
FMT_ENABLE_IF(check)>
FMT_CONSTEXPR OutputIt write(OutputIt out, T value) { FMT_CONSTEXPR OutputIt write(OutputIt out, T value) {
return write<Char>( return write<Char>(
out, static_cast<typename std::underlying_type<T>::type>(value)); out, static_cast<typename std::underlying_type<T>::type>(value));