libstdc++: Simplify constraints for semiregular-box [LWG 3477]

libstdc++-v3/ChangeLog:

	* include/std/ranges (__box): Simplify constraints as per LWG 3477.
This commit is contained in:
Jonathan Wakely 2020-09-07 20:09:17 +01:00
parent e147bb0faa
commit 00ffe73007

View File

@ -494,10 +494,12 @@ namespace ranges
using std::optional<_Tp>::operator=;
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 3477. Simplify constraints for semiregular-box
__box&
operator=(const __box& __that)
noexcept(is_nothrow_copy_constructible_v<_Tp>)
requires (!assignable_from<_Tp&, const _Tp&>)
requires (!copyable<_Tp>)
{
if ((bool)__that)
this->emplace(*__that);
@ -509,7 +511,7 @@ namespace ranges
__box&
operator=(__box&& __that)
noexcept(is_nothrow_move_constructible_v<_Tp>)
requires (!assignable_from<_Tp&, _Tp>)
requires (!movable<_Tp>)
{
if ((bool)__that)
this->emplace(std::move(*__that));