@@ -255,7 +255,6 @@ template <class... Types>
255255# include < __type_traits/is_same.h>
256256# include < __type_traits/is_swappable.h>
257257# include < __type_traits/is_trivially_relocatable.h>
258- # include < __type_traits/lazy.h>
259258# include < __type_traits/maybe_const.h>
260259# include < __type_traits/nat.h>
261260# include < __type_traits/negation.h>
@@ -597,30 +596,30 @@ public:
597596 template <template <class ...> class _IsImpDefault = __is_implicitly_default_constructible,
598597 template <class ...> class _IsDefault = is_default_constructible,
599598 __enable_if_t < _And< _IsDefault<_Tp>... >::value, int > = 0 >
600- _LIBCPP_HIDE_FROM_ABI constexpr explicit (_Not<_Lazy< _And, _IsImpDefault<_Tp>...> >::value)
599+ _LIBCPP_HIDE_FROM_ABI constexpr explicit (! _And< _IsImpDefault<_Tp>...>::value)
601600 tuple() noexcept (_And<is_nothrow_default_constructible<_Tp>...>::value) {}
602601
603602 template <class _Alloc ,
604603 template <class ...> class _IsImpDefault = __is_implicitly_default_constructible,
605604 template <class ...> class _IsDefault = is_default_constructible,
606605 __enable_if_t < _And< _IsDefault<_Tp>... >::value, int > = 0 >
607- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (_Not<_Lazy<_And, _IsImpDefault<_Tp>...> >::value)
608- tuple(allocator_arg_t , _Alloc const & __a)
606+ _LIBCPP_HIDE_FROM_ABI
607+ _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (!_And<_IsImpDefault<_Tp>...>::value) tuple(allocator_arg_t , _Alloc const & __a)
609608 : __base_(allocator_arg_t (), __a, __value_init{}) {}
610609
611610 // tuple(const T&...) constructors (including allocator_arg_t variants)
612611 template <template <class ...> class _And = _And,
613612 __enable_if_t < _And< _BoolConstant<sizeof ...(_Tp) >= 1 >, is_copy_constructible<_Tp>... >::value, int > = 0 >
614613 _LIBCPP_HIDE_FROM_ABI
615- _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (_Not<_Lazy< _And, is_convertible<const _Tp&, _Tp>...> >::value)
614+ _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (! _And< is_convertible<const _Tp&, _Tp>...>::value)
616615 tuple(const _Tp&... __t ) noexcept (_And<is_nothrow_copy_constructible<_Tp>...>::value)
617616 : __base_(__forward_args{}, __t ...) {}
618617
619618 template <class _Alloc ,
620619 template <class ...> class _And = _And,
621620 __enable_if_t < _And< _BoolConstant<sizeof ...(_Tp) >= 1 >, is_copy_constructible<_Tp>... >::value, int > = 0 >
622621 _LIBCPP_HIDE_FROM_ABI
623- _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (_Not<_Lazy< _And, is_convertible<const _Tp&, _Tp>...> >::value)
622+ _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (! _And< is_convertible<const _Tp&, _Tp>...>::value)
624623 tuple(allocator_arg_t , const _Alloc& __a, const _Tp&... __t )
625624 : __base_(allocator_arg_t (), __a, __forward_args{}, __t ...) {}
626625
@@ -639,15 +638,15 @@ public:
639638 template <class ... _Up,
640639 __enable_if_t < _And< _BoolConstant<sizeof ...(_Up) == sizeof ...(_Tp)>, _EnableUTypesCtor<_Up...> >::value,
641640 int > = 0 >
642- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (_Not<_Lazy< _And, is_convertible<_Up, _Tp>...> >::value)
641+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (! _And< is_convertible<_Up, _Tp>...>::value)
643642 tuple(_Up&&... __u) noexcept (_And<is_nothrow_constructible<_Tp, _Up>...>::value)
644643 : __base_(__forward_args{}, std::forward<_Up>(__u)...) {}
645644
646645 template <class _Alloc ,
647646 class ... _Up,
648647 __enable_if_t < _And< _BoolConstant<sizeof ...(_Up) == sizeof ...(_Tp)>, _EnableUTypesCtor<_Up...> >::value,
649648 int > = 0 >
650- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (_Not<_Lazy< _And, is_convertible<_Up, _Tp>...> >::value)
649+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (! _And< is_convertible<_Up, _Tp>...>::value)
651650 tuple(allocator_arg_t , const _Alloc& __a, _Up&&... __u)
652651 : __base_(allocator_arg_t (), __a, __forward_args{}, std::forward<_Up>(__u)...) {}
653652
@@ -685,67 +684,65 @@ public:
685684 _Not<is_same<_OtherTuple, const tuple&> >,
686685 _Not<is_same<_OtherTuple, tuple&&> >,
687686 is_constructible<_Tp, __copy_cvref_t <_OtherTuple, _Up> >...,
688- _Lazy<_Or,
689- _BoolConstant<sizeof ...(_Tp) != 1 >,
690- // _Tp and _Up are 1-element packs - the pack expansions look
691- // weird to avoid tripping up the type traits in degenerate cases
692- _Lazy<_And,
693- _Not<is_same<_Tp, _Up> >...,
694- _Not<is_convertible<_OtherTuple, _Tp> >...,
695- _Not<is_constructible<_Tp, _OtherTuple> >... > > > {};
687+ _Or<_BoolConstant<sizeof ...(_Tp) != 1 >,
688+ // _Tp and _Up are 1-element packs - the pack expansions look
689+ // weird to avoid tripping up the type traits in degenerate cases
690+ _And<_Not<is_same<_Tp, _Up> >...,
691+ _Not<is_convertible<_OtherTuple, _Tp> >...,
692+ _Not<is_constructible<_Tp, _OtherTuple> >... > > > {};
696693
697694 template <class ... _Up, __enable_if_t < _And< _EnableCtorFromUTypesTuple<const tuple<_Up...>&> >::value, int > = 0 >
698695 _LIBCPP_HIDE_FROM_ABI
699- _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (_Not<_Lazy< _And, is_convertible<const _Up&, _Tp>...> >::value)
696+ _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (! _And< is_convertible<const _Up&, _Tp>...>::value)
700697 tuple(const tuple<_Up...>& __t ) noexcept (_And<is_nothrow_constructible<_Tp, const _Up&>...>::value)
701698 : __base_(__from_tuple(), __t) {}
702699
703700 template <class ... _Up,
704701 class _Alloc ,
705702 __enable_if_t < _And< _EnableCtorFromUTypesTuple<const tuple<_Up...>&> >::value, int > = 0 >
706703 _LIBCPP_HIDE_FROM_ABI
707- _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (_Not<_Lazy< _And, is_convertible<const _Up&, _Tp>...> >::value)
704+ _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (! _And< is_convertible<const _Up&, _Tp>...>::value)
708705 tuple(allocator_arg_t , const _Alloc& __a, const tuple<_Up...>& __t )
709706 : __base_(allocator_arg_t (), __a, __from_tuple(), __t) {}
710707
711708# if _LIBCPP_STD_VER >= 23
712709 // tuple(tuple<U...>&) constructors (including allocator_arg_t variants)
713710
714711 template <class ... _Up, enable_if_t < _EnableCtorFromUTypesTuple<tuple<_Up...>&>::value>* = nullptr >
715- _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_Lazy< _And, is_convertible<_Up&, _Tp>...>::value) tuple(tuple<_Up...>& __t )
712+ _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_And< is_convertible<_Up&, _Tp>...>::value) tuple(tuple<_Up...>& __t )
716713 : __base_(__from_tuple(), __t) {}
717714
718715 template <class _Alloc , class ... _Up, enable_if_t < _EnableCtorFromUTypesTuple<tuple<_Up...>&>::value>* = nullptr >
719- _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_Lazy< _And, is_convertible<_Up&, _Tp>...>::value)
716+ _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_And< is_convertible<_Up&, _Tp>...>::value)
720717 tuple(allocator_arg_t , const _Alloc& __alloc, tuple<_Up...>& __t )
721718 : __base_(allocator_arg_t (), __alloc, __from_tuple(), __t) {}
722719# endif // _LIBCPP_STD_VER >= 23
723720
724721 // tuple(tuple<U...>&&) constructors (including allocator_arg_t variants)
725722 template <class ... _Up, __enable_if_t < _And< _EnableCtorFromUTypesTuple<tuple<_Up...>&&> >::value, int > = 0 >
726- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (_Not<_Lazy< _And, is_convertible<_Up, _Tp>...> >::value)
723+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 explicit (! _And< is_convertible<_Up, _Tp>...>::value)
727724 tuple(tuple<_Up...>&& __t ) noexcept (_And<is_nothrow_constructible<_Tp, _Up>...>::value)
728725 : __base_(__from_tuple(), std::move(__t )) {}
729726
730727 template <class _Alloc ,
731728 class ... _Up,
732729 __enable_if_t < _And< _EnableCtorFromUTypesTuple<tuple<_Up...>&&> >::value, int > = 0 >
733- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (_Not<_Lazy< _And, is_convertible<_Up, _Tp>...> >::value)
730+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 explicit (! _And< is_convertible<_Up, _Tp>...>::value)
734731 tuple(allocator_arg_t , const _Alloc& __a, tuple<_Up...>&& __t )
735732 : __base_(allocator_arg_t (), __a, __from_tuple(), std::move(__t )) {}
736733
737734# if _LIBCPP_STD_VER >= 23
738735 // tuple(const tuple<U...>&&) constructors (including allocator_arg_t variants)
739736
740737 template <class ... _Up, enable_if_t < _EnableCtorFromUTypesTuple<const tuple<_Up...>&&>::value>* = nullptr >
741- _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_Lazy< _And, is_convertible<const _Up&&, _Tp>...>::value)
738+ _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_And< is_convertible<const _Up&&, _Tp>...>::value)
742739 tuple(const tuple<_Up...>&& __t )
743740 : __base_(__from_tuple(), std::move(__t )) {}
744741
745742 template <class _Alloc ,
746743 class ... _Up,
747744 enable_if_t < _EnableCtorFromUTypesTuple<const tuple<_Up...>&&>::value>* = nullptr >
748- _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_Lazy< _And, is_convertible<const _Up&&, _Tp>...>::value)
745+ _LIBCPP_HIDE_FROM_ABI constexpr explicit (!_And< is_convertible<const _Up&&, _Tp>...>::value)
749746 tuple(allocator_arg_t , const _Alloc& __alloc, const tuple<_Up...>&& __t )
750747 : __base_(allocator_arg_t (), __alloc, __from_tuple(), std::move(__t )) {}
751748# endif // _LIBCPP_STD_VER >= 23
0 commit comments