forked from OSchip/llvm-project
[libc++][NFC] Format expression-equivalent wrappers consistently
Differential Revision: https://reviews.llvm.org/D108144
This commit is contained in:
parent
2078c4ecfd
commit
b28cb53eac
|
@ -53,9 +53,9 @@ struct _LIBCPP_TEMPLATE_VIS plus<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -90,9 +90,9 @@ struct _LIBCPP_TEMPLATE_VIS minus<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -127,9 +127,9 @@ struct _LIBCPP_TEMPLATE_VIS multiplies<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -164,9 +164,9 @@ struct _LIBCPP_TEMPLATE_VIS divides<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -201,9 +201,9 @@ struct _LIBCPP_TEMPLATE_VIS modulus<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -237,9 +237,9 @@ struct _LIBCPP_TEMPLATE_VIS negate<void>
|
|||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_Tp&& __x) const
|
||||
_NOEXCEPT_(noexcept(- _VSTD::forward<_Tp>(__x)))
|
||||
-> decltype (- _VSTD::forward<_Tp>(__x))
|
||||
{ return - _VSTD::forward<_Tp>(__x); }
|
||||
noexcept(noexcept(- _VSTD::forward<_Tp>(__x)))
|
||||
-> decltype( - _VSTD::forward<_Tp>(__x))
|
||||
{ return - _VSTD::forward<_Tp>(__x); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -276,9 +276,9 @@ struct _LIBCPP_TEMPLATE_VIS bit_and<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -307,9 +307,9 @@ struct _LIBCPP_TEMPLATE_VIS bit_not<void>
|
|||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_Tp&& __x) const
|
||||
_NOEXCEPT_(noexcept(~_VSTD::forward<_Tp>(__x)))
|
||||
-> decltype (~_VSTD::forward<_Tp>(__x))
|
||||
{ return ~_VSTD::forward<_Tp>(__x); }
|
||||
noexcept(noexcept(~_VSTD::forward<_Tp>(__x)))
|
||||
-> decltype( ~_VSTD::forward<_Tp>(__x))
|
||||
{ return ~_VSTD::forward<_Tp>(__x); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -344,9 +344,9 @@ struct _LIBCPP_TEMPLATE_VIS bit_or<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -381,9 +381,9 @@ struct _LIBCPP_TEMPLATE_VIS bit_xor<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -420,9 +420,9 @@ struct _LIBCPP_TEMPLATE_VIS equal_to<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -457,9 +457,9 @@ struct _LIBCPP_TEMPLATE_VIS not_equal_to<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -494,9 +494,9 @@ struct _LIBCPP_TEMPLATE_VIS less<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -531,9 +531,9 @@ struct _LIBCPP_TEMPLATE_VIS less_equal<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -568,9 +568,9 @@ struct _LIBCPP_TEMPLATE_VIS greater_equal<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -605,9 +605,9 @@ struct _LIBCPP_TEMPLATE_VIS greater<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -644,9 +644,9 @@ struct _LIBCPP_TEMPLATE_VIS logical_and<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -680,9 +680,9 @@ struct _LIBCPP_TEMPLATE_VIS logical_not<void>
|
|||
template <class _Tp>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_Tp&& __x) const
|
||||
_NOEXCEPT_(noexcept(!_VSTD::forward<_Tp>(__x)))
|
||||
-> decltype (!_VSTD::forward<_Tp>(__x))
|
||||
{ return !_VSTD::forward<_Tp>(__x); }
|
||||
noexcept(noexcept(!_VSTD::forward<_Tp>(__x)))
|
||||
-> decltype( !_VSTD::forward<_Tp>(__x))
|
||||
{ return !_VSTD::forward<_Tp>(__x); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
@ -717,9 +717,9 @@ struct _LIBCPP_TEMPLATE_VIS logical_or<void>
|
|||
template <class _T1, class _T2>
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY
|
||||
auto operator()(_T1&& __t, _T2&& __u) const
|
||||
_NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u)))
|
||||
-> decltype (_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u); }
|
||||
noexcept(noexcept(_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u)))
|
||||
-> decltype( _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u))
|
||||
{ return _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u); }
|
||||
typedef void is_transparent;
|
||||
};
|
||||
#endif
|
||||
|
|
|
@ -374,19 +374,15 @@ namespace __iota {
|
|||
_LIBCPP_HIDE_FROM_ABI
|
||||
constexpr auto operator()(_Start&& __start) const
|
||||
noexcept(noexcept(ranges::iota_view(_VSTD::forward<_Start>(__start))))
|
||||
-> decltype(ranges::iota_view(_VSTD::forward<_Start>(__start)))
|
||||
{
|
||||
return ranges::iota_view(_VSTD::forward<_Start>(__start));
|
||||
}
|
||||
-> decltype( ranges::iota_view(_VSTD::forward<_Start>(__start)))
|
||||
{ return ranges::iota_view(_VSTD::forward<_Start>(__start)); }
|
||||
|
||||
template<class _Start, class _Bound>
|
||||
_LIBCPP_HIDE_FROM_ABI
|
||||
constexpr auto operator()(_Start&& __start, _Bound&& __bound) const
|
||||
noexcept(noexcept(ranges::iota_view(_VSTD::forward<_Start>(__start), _VSTD::forward<_Bound>(__bound))))
|
||||
-> decltype(ranges::iota_view(_VSTD::forward<_Start>(__start), _VSTD::forward<_Bound>(__bound)))
|
||||
{
|
||||
return ranges::iota_view(_VSTD::forward<_Start>(__start), _VSTD::forward<_Bound>(__bound));
|
||||
}
|
||||
-> decltype( ranges::iota_view(_VSTD::forward<_Start>(__start), _VSTD::forward<_Bound>(__bound)))
|
||||
{ return ranges::iota_view(_VSTD::forward<_Start>(__start), _VSTD::forward<_Bound>(__bound)); }
|
||||
};
|
||||
} // namespace __iota
|
||||
|
||||
|
|
|
@ -3811,10 +3811,6 @@ using __enable_if_bullet6 = typename enable_if
|
|||
|
||||
// fall back - none of the bullets
|
||||
|
||||
#define _LIBCPP_INVOKE_RETURN(...) \
|
||||
noexcept(noexcept(__VA_ARGS__)) -> decltype(__VA_ARGS__) \
|
||||
{ return __VA_ARGS__; }
|
||||
|
||||
template <class ..._Args>
|
||||
auto __invoke(__any, _Args&& ...__args) -> __nat;
|
||||
|
||||
|
@ -3828,42 +3824,54 @@ template <class _Fp, class _A0, class ..._Args,
|
|||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class _A0, class ..._Args,
|
||||
class = __enable_if_bullet1<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class _A0, class ..._Args,
|
||||
class = __enable_if_bullet2<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN((__a0.get().*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( (__a0.get().*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class _A0, class ..._Args,
|
||||
class = __enable_if_bullet2<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN((__a0.get().*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( (__a0.get().*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class _A0, class ..._Args,
|
||||
class = __enable_if_bullet3<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class _A0, class ..._Args,
|
||||
class = __enable_if_bullet3<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
// bullets 4, 5 and 6
|
||||
|
||||
|
@ -3872,42 +3880,54 @@ template <class _Fp, class _A0,
|
|||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN(static_cast<_A0&&>(__a0).*__f)
|
||||
noexcept(noexcept(static_cast<_A0&&>(__a0).*__f))
|
||||
-> decltype( static_cast<_A0&&>(__a0).*__f)
|
||||
{ return static_cast<_A0&&>(__a0).*__f; }
|
||||
|
||||
template <class _Fp, class _A0,
|
||||
class = __enable_if_bullet4<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN(static_cast<_A0&&>(__a0).*__f)
|
||||
noexcept(noexcept(static_cast<_A0&&>(__a0).*__f))
|
||||
-> decltype( static_cast<_A0&&>(__a0).*__f)
|
||||
{ return static_cast<_A0&&>(__a0).*__f; }
|
||||
|
||||
template <class _Fp, class _A0,
|
||||
class = __enable_if_bullet5<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN(__a0.get().*__f)
|
||||
noexcept(noexcept(__a0.get().*__f))
|
||||
-> decltype( __a0.get().*__f)
|
||||
{ return __a0.get().*__f; }
|
||||
|
||||
template <class _Fp, class _A0,
|
||||
class = __enable_if_bullet5<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN(__a0.get().*__f)
|
||||
noexcept(noexcept(__a0.get().*__f))
|
||||
-> decltype( __a0.get().*__f)
|
||||
{ return __a0.get().*__f; }
|
||||
|
||||
template <class _Fp, class _A0,
|
||||
class = __enable_if_bullet6<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN((*static_cast<_A0&&>(__a0)).*__f)
|
||||
noexcept(noexcept((*static_cast<_A0&&>(__a0)).*__f))
|
||||
-> decltype( (*static_cast<_A0&&>(__a0)).*__f)
|
||||
{ return (*static_cast<_A0&&>(__a0)).*__f; }
|
||||
|
||||
template <class _Fp, class _A0,
|
||||
class = __enable_if_bullet6<_Fp, _A0>>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _A0&& __a0)
|
||||
_LIBCPP_INVOKE_RETURN((*static_cast<_A0&&>(__a0)).*__f)
|
||||
noexcept(noexcept((*static_cast<_A0&&>(__a0)).*__f))
|
||||
-> decltype( (*static_cast<_A0&&>(__a0)).*__f)
|
||||
{ return (*static_cast<_A0&&>(__a0)).*__f; }
|
||||
|
||||
// bullet 7
|
||||
|
||||
|
@ -3915,15 +3935,17 @@ template <class _Fp, class ..._Args>
|
|||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR_AFTER_CXX17 auto
|
||||
__invoke(_Fp&& __f, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...))
|
||||
noexcept(noexcept(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
template <class _Fp, class ..._Args>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
_LIBCPP_CONSTEXPR auto
|
||||
__invoke_constexpr(_Fp&& __f, _Args&& ...__args)
|
||||
_LIBCPP_INVOKE_RETURN(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...))
|
||||
|
||||
#undef _LIBCPP_INVOKE_RETURN
|
||||
noexcept(noexcept(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...)))
|
||||
-> decltype( static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...))
|
||||
{ return static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...); }
|
||||
|
||||
// __invokable
|
||||
template <class _Ret, class _Fp, class ..._Args>
|
||||
|
|
|
@ -1718,11 +1718,10 @@ inline _LIBCPP_INLINE_VISIBILITY
|
|||
|
||||
template <class... _Types>
|
||||
inline _LIBCPP_INLINE_VISIBILITY
|
||||
auto swap(variant<_Types...>& __lhs,
|
||||
variant<_Types...>& __rhs) noexcept(noexcept(__lhs.swap(__rhs)))
|
||||
-> decltype(__lhs.swap(__rhs)) {
|
||||
__lhs.swap(__rhs);
|
||||
}
|
||||
auto swap(variant<_Types...>& __lhs, variant<_Types...>& __rhs)
|
||||
noexcept(noexcept(__lhs.swap(__rhs)))
|
||||
-> decltype( __lhs.swap(__rhs))
|
||||
{ return __lhs.swap(__rhs); }
|
||||
|
||||
template <class... _Types>
|
||||
struct _LIBCPP_TEMPLATE_VIS hash<
|
||||
|
|
Loading…
Reference in New Issue