On 14/05/19 17:46 +0100, Jonathan Wakely wrote:
This change simplifies visitation for variants, by using INVOKE<R> for
the visit<R> form, and explicitly specifying the tag types for raw
visitation, instead of inferring them from the return types of the
lambda functions used as visitors.

An additional tiny tweak.

Tested powerpc64le-linux, committed to trunk.

commit 10724a3fea78ab58b8e2fec3416c940e02739514
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed May 15 22:01:47 2019 +0100

    Qualify calls in std::visit and std::visit<R>
    
            * include/std/variant (visit, visit<R>): Qualify calls to __do_visit.

diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index dc4bbb7f356..8c710c30de5 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -1637,8 +1637,8 @@ namespace __variant
 
       using _Tag = __detail::__variant::__deduce_visit_result<_Result_type>;
 
-      return __do_visit<_Tag>(std::forward<_Visitor>(__visitor),
-			      std::forward<_Variants>(__variants)...);
+      return std::__do_visit<_Tag>(std::forward<_Visitor>(__visitor),
+				   std::forward<_Variants>(__variants)...);
     }
 
 #if __cplusplus > 201703L
@@ -1649,8 +1649,8 @@ namespace __variant
       if ((__variants.valueless_by_exception() || ...))
 	__throw_bad_variant_access("Unexpected index");
 
-      return __do_visit<_Res>(std::forward<_Visitor>(__visitor),
-			      std::forward<_Variants>(__variants)...);
+      return std::__do_visit<_Res>(std::forward<_Visitor>(__visitor),
+				   std::forward<_Variants>(__variants)...);
     }
 #endif
 

Reply via email to