diff --git a/libcudacxx/include/cuda/std/__tuple_dir/tuple.h b/libcudacxx/include/cuda/std/__tuple_dir/tuple.h index 6d0939a72039..a2b4468ff86e 100644 --- a/libcudacxx/include/cuda/std/__tuple_dir/tuple.h +++ b/libcudacxx/include/cuda/std/__tuple_dir/tuple.h @@ -391,26 +391,29 @@ class _CCCL_TYPE_VISIBILITY_DEFAULT tuple // NOLINTBEGIN(bugprone-forwarding-reference-overload) template ::value, int> = 0, - class _Constraints = _TupleLikeConstructible<_Tuple>, - enable_if_t<_Constraints::__can_construct_implicitly, int> = 0> + enable_if_t>, int> = 0, + enable_if_t<_DisambiguateTupleLike<_Tuple>::value, int> = 0, + class _Constraints = _TupleLikeConstructible<_Tuple>, + enable_if_t<_Constraints::__can_construct_implicitly, int> = 0> _CCCL_API constexpr tuple(_Tuple&& __t) noexcept(_NothrowTupleLikeConstructible<_Tuple>::value) : __base_(__tuple_like_constructor_tag{}, ::cuda::std::forward<_Tuple>(__t)) {} template ::value, int> = 0, - class _Constraints = _TupleLikeConstructible<_Tuple>, - enable_if_t<_Constraints::__can_construct_explicitly, int> = 0> + enable_if_t>, int> = 0, + enable_if_t<_DisambiguateTupleLike<_Tuple>::value, int> = 0, + class _Constraints = _TupleLikeConstructible<_Tuple>, + enable_if_t<_Constraints::__can_construct_explicitly, int> = 0> _CCCL_API explicit constexpr tuple(_Tuple&& __t) noexcept(_NothrowTupleLikeConstructible<_Tuple>::value) : __base_(__tuple_like_constructor_tag{}, ::cuda::std::forward<_Tuple>(__t)) {} #if defined(_CCCL_BUILTIN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY) template ::value, int> = 0, - class _Constraints = _TupleLikeConstructible<_Tuple>, - enable_if_t<_Constraints::__is_deleted, int> = 0> + enable_if_t>, int> = 0, + enable_if_t<_DisambiguateTupleLike<_Tuple>::value, int> = 0, + class _Constraints = _TupleLikeConstructible<_Tuple>, + enable_if_t<_Constraints::__is_deleted, int> = 0> constexpr tuple(_Tuple&&) = delete; #endif // _CCCL_BUILTIN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY // NOLINTEND(bugprone-forwarding-reference-overload)