mirror of git://gcc.gnu.org/git/gcc.git
libstdc++: Use __promote_3 for std::hypot [PR121097]
The __promoted_t alias is only defined when __cpp_fold_expressions is defined, which might not be the case for some hypothetical C++17 compilers. Change the 3-arg std::hypot to just use __gnu_cxx::__promote_3 which is always available. libstdc++-v3/ChangeLog: PR libstdc++/121097 * include/c_global/cmath (hypot): Use __promote_3 instead of __promoted. Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
This commit is contained in:
parent
d626debcb3
commit
f4932c59df
|
@ -3792,10 +3792,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
{ return std::__hypot3<long double>(__x, __y, __z); }
|
{ return std::__hypot3<long double>(__x, __y, __z); }
|
||||||
|
|
||||||
template<typename _Tp, typename _Up, typename _Vp>
|
template<typename _Tp, typename _Up, typename _Vp>
|
||||||
__gnu_cxx::__promoted_t<_Tp, _Up, _Vp>
|
typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type
|
||||||
hypot(_Tp __x, _Up __y, _Vp __z)
|
hypot(_Tp __x, _Up __y, _Vp __z)
|
||||||
{
|
{
|
||||||
using __type = __gnu_cxx::__promoted_t<_Tp, _Up, _Vp>;
|
using __type = typename __gnu_cxx::__promote_3<_Tp, _Up, _Vp>::__type;
|
||||||
return std::__hypot3<__type>(__x, __y, __z);
|
return std::__hypot3<__type>(__x, __y, __z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue