[libcxx] r328388 - Partially Revert "Workaround GCC bug PR78489 - SFINAE order is not respected."
Eric Fiselier via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 23 16:42:30 PDT 2018
Author: ericwf
Date: Fri Mar 23 16:42:30 2018
New Revision: 328388
URL: http://llvm.org/viewvc/llvm-project?rev=328388&view=rev
Log:
Partially Revert "Workaround GCC bug PR78489 - SFINAE order is not respected."
This partially reverts commit r328261. The GCC bug has been fixed in
trunk and has never existed in a released version. Therefore the changes
to variant are unneeded.
However, the additional tests have been left in place.
Modified:
libcxx/trunk/include/variant
Modified: libcxx/trunk/include/variant
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/variant?rev=328388&r1=328387&r2=328388&view=diff
==============================================================================
--- libcxx/trunk/include/variant (original)
+++ libcxx/trunk/include/variant Fri Mar 23 16:42:30 2018
@@ -1156,24 +1156,29 @@ public:
: __impl(in_place_index<_Ip>, _VSTD::forward<_Arg>(__arg)) {}
template <size_t _Ip, class... _Args,
- enable_if_t<(_Ip < sizeof...(_Types)), size_t> _Ip2 = _Ip,
- class _Tp = variant_alternative_t<_Ip2, variant<_Types...>>,
- enable_if_t<is_constructible<_Tp, _Args...>::value, int> = 0>
+ class = enable_if_t<(_Ip < sizeof...(_Types)), int>,
+ class _Tp = variant_alternative_t<_Ip, variant<_Types...>>,
+ enable_if_t<is_constructible_v<_Tp, _Args...>, int> = 0>
inline _LIBCPP_INLINE_VISIBILITY
- explicit constexpr variant(in_place_index_t<_Ip>,
- _Args&&... __args)
- noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
+ explicit constexpr variant(
+ in_place_index_t<_Ip>,
+ _Args&&... __args) noexcept(is_nothrow_constructible_v<_Tp, _Args...>)
: __impl(in_place_index<_Ip>, _VSTD::forward<_Args>(__args)...) {}
- template <size_t _Ip, class _Up, class... _Args,
- enable_if_t<(_Ip < sizeof...(_Types)), size_t> _Ip2 = _Ip,
- class _Tp = variant_alternative_t<_Ip2, variant<_Types...>>,
+ template <
+ size_t _Ip,
+ class _Up,
+ class... _Args,
+ enable_if_t<(_Ip < sizeof...(_Types)), int> = 0,
+ class _Tp = variant_alternative_t<_Ip, variant<_Types...>>,
enable_if_t<is_constructible_v<_Tp, initializer_list<_Up>&, _Args...>,
int> = 0>
inline _LIBCPP_INLINE_VISIBILITY
- explicit constexpr variant(in_place_index_t<_Ip>, initializer_list<_Up> __il,
- _Args&&... __args)
- noexcept(is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>)
+ explicit constexpr variant(
+ in_place_index_t<_Ip>,
+ initializer_list<_Up> __il,
+ _Args&&... __args) noexcept(
+ is_nothrow_constructible_v<_Tp, initializer_list<_Up>&, _Args...>)
: __impl(in_place_index<_Ip>, __il, _VSTD::forward<_Args>(__args)...) {}
template <
More information about the cfe-commits
mailing list