};
#endif
-#if defined(__SIZEOF_FLOAT128__) && _GLIBCXX_FORMAT_F128 > 1
- // Reuse __formatter_fp<C>::format<__format::__flt128_t, Out> for __float128.
- // This formatter is not declared if _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT is true,
- // as __float128 when present is same type as __ieee128, which may be same as
- // long double.
+#if defined(__SIZEOF_FLOAT128__) && _GLIBCXX_FORMAT_F128 == 2
+ // Use __formatter_fp<C>::format<__format::__flt128_t, Out> for __float128,
+ // when long double is not 128bit IEEE type.
template<__format::__char _CharT>
struct formatter<__float128, _CharT>
{
private:
__format::__formatter_fp<_CharT> _M_f;
-
- static_assert( !is_same_v<__float128, long double>,
- "This specialization should not be used for long double" );
};
#endif