[msvc][fix] internal compiler error for requires expression. "simplify" with extra concept

This commit is contained in:
Jonas Hoppe
2024-08-30 13:27:37 +02:00
parent 5e657bac70
commit 3d32d5d833

View File

@@ -89,9 +89,12 @@ std::basic_ostream<CharT, Traits>& to_stream(std::basic_ostream<CharT, Traits>&
MP_UNITS_EXPORT_BEGIN MP_UNITS_EXPORT_BEGIN
template<typename OStream, typename T>
concept is_mp_units_stream = requires (OStream os, T v) { detail::to_stream_impl(os, v); };
template<typename CharT, typename Traits, typename T> template<typename CharT, typename Traits, typename T>
std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const T& v) std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const T& v)
requires requires { detail::to_stream_impl(os, v); } requires is_mp_units_stream<std::basic_ostream<CharT, Traits>, T>
{ {
return detail::to_stream(os, v); return detail::to_stream(os, v);
} }