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

Jonathan Wakely redi@gcc.gnu.org
Mon Mar 29 20:00:36 GMT 2021


https://gcc.gnu.org/g:1649b523067f2bd8e5c872db36c8cf00c99f8832

commit r10-9561-g1649b523067f2bd8e5c872db36c8cf00c99f8832
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Sep 7 20:09:17 2020 +0100

    libstdc++: Simplify constraints for semiregular-box [LWG 3477]
    
    libstdc++-v3/ChangeLog:
    
            * include/std/ranges (__box): Simplify constraints as per LWG 3477.
    
    (cherry picked from commit 00ffe730072f5e2e1923692163dc37db7b3784cb)

Diff:
---
 libstdc++-v3/include/std/ranges | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges
index a93a698c40a..4b596d41a47 100644
--- a/libstdc++-v3/include/std/ranges
+++ b/libstdc++-v3/include/std/ranges
@@ -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));


More information about the Libstdc++-cvs mailing list