From 970d3d9011542639b420610a29bf9046fcee606c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 5 Apr 2018 17:59:13 +0100 Subject: [PATCH] Add another workaround to std::variant for Clang bug 31852 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify __get calls to avoid ADL and avoid ambiguity due to Clang bug. From-SVN: r259135 --- libstdc++-v3/ChangeLog | 7 ++++++- libstdc++-v3/include/std/variant | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index df667c1398d..1d6fd894871 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2018-04-05 Jonathan Wakely + + * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify + __get calls to avoid ADL and avoid ambiguity due to Clang bug. + 2018-04-03 Jonathan Wakely PR libstdc++/85183 @@ -18,7 +23,7 @@ (less::__not_overloaded, greater_equal::__not_overloaded) (less_equal::__not_overloaded): Fix ambiguous specializations. * testsuite/20_util/function_objects/comparisons_pointer.cc: Add - tests for type with overlaoded operators. + tests for type with overloaded operators. 2018-03-22 Rainer Orth diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant index 028d3064272..48bec528406 100644 --- a/libstdc++-v3/include/std/variant +++ b/libstdc++-v3/include/std/variant @@ -272,8 +272,8 @@ namespace __variant constexpr bool \ __erased_##__NAME(const _Variant& __lhs, const _Variant& __rhs) \ { \ - return __get<_Np>(std::forward<_Variant>(__lhs)) \ - __OP __get<_Np>(std::forward<_Variant>(__rhs)); \ + return __variant::__get<_Np>(std::forward<_Variant>(__lhs)) \ + __OP __variant::__get<_Np>(std::forward<_Variant>(__rhs)); \ } _VARIANT_RELATION_FUNCTION_TEMPLATE(<, less) -- 2.30.2