diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt index 10dfb4b4d58cb..1f79769f635da 100644 --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -898,7 +898,6 @@ set(files __type_traits/is_void.h __type_traits/is_volatile.h __type_traits/is_within_lifetime.h - __type_traits/lazy.h __type_traits/make_32_64_or_128_bit.h __type_traits/make_const_lvalue_ref.h __type_traits/make_signed.h diff --git a/libcxx/include/__expected/expected.h b/libcxx/include/__expected/expected.h index 27bc086698399..32ed81a392702 100644 --- a/libcxx/include/__expected/expected.h +++ b/libcxx/include/__expected/expected.h @@ -37,7 +37,6 @@ #include <__type_traits/is_trivially_destructible.h> #include <__type_traits/is_trivially_relocatable.h> #include <__type_traits/is_void.h> -#include <__type_traits/lazy.h> #include <__type_traits/negation.h> #include <__type_traits/remove_cv.h> #include <__type_traits/remove_cvref.h> @@ -685,12 +684,11 @@ class expected : private __expected_base<_Tp, _Err> { private: template static constexpr bool __can_assign_from_unexpected = - _And< is_constructible<_Err, _OtherErrQual>, - is_assignable<_Err&, _OtherErrQual>, - _Lazy<_Or, - is_nothrow_constructible<_Err, _OtherErrQual>, - is_nothrow_move_constructible<_Tp>, - is_nothrow_move_constructible<_Err>> >::value; + _And, + is_assignable<_Err&, _OtherErrQual>, + _Or, + is_nothrow_move_constructible<_Tp>, + is_nothrow_move_constructible<_Err>>>::value; public: template diff --git a/libcxx/include/__type_traits/conjunction.h b/libcxx/include/__type_traits/conjunction.h index ad9656acd47ec..9d84ef8c0ca1b 100644 --- a/libcxx/include/__type_traits/conjunction.h +++ b/libcxx/include/__type_traits/conjunction.h @@ -34,7 +34,7 @@ false_type __and_helper(...); // // However, `_And<_Pred...>` itself will evaluate its result immediately (without having to // be instantiated) since it is an alias, unlike `conjunction<_Pred...>`, which is a struct. -// If you want to defer the evaluation of `_And<_Pred...>` itself, use `_Lazy<_And, _Pred...>`. +// If you want to defer the evaluation, use `conjunction{,_v}<_Pred...>`. template using _And _LIBCPP_NODEBUG = decltype(std::__and_helper<_Pred...>(0)); diff --git a/libcxx/include/__type_traits/disjunction.h b/libcxx/include/__type_traits/disjunction.h index 8e7a38413a985..40f571a3f0d54 100644 --- a/libcxx/include/__type_traits/disjunction.h +++ b/libcxx/include/__type_traits/disjunction.h @@ -38,8 +38,7 @@ struct _OrImpl { // // However, `_Or<_Pred...>` itself will evaluate its result immediately (without having to // be instantiated) since it is an alias, unlike `disjunction<_Pred...>`, which is a struct. -// If you want to defer the evaluation of `_Or<_Pred...>` itself, use `_Lazy<_Or, _Pred...>` -// or `disjunction<_Pred...>` directly. +// If you want to defer the evaluation , use `disjunction{,_v}<_Pred...>`. template using _Or _LIBCPP_NODEBUG = typename _OrImpl::template _Result; diff --git a/libcxx/include/__type_traits/lazy.h b/libcxx/include/__type_traits/lazy.h deleted file mode 100644 index 80826f1d64f60..0000000000000 --- a/libcxx/include/__type_traits/lazy.h +++ /dev/null @@ -1,25 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef _LIBCPP___TYPE_TRAITS_LAZY_H -#define _LIBCPP___TYPE_TRAITS_LAZY_H - -#include <__config> - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -_LIBCPP_BEGIN_NAMESPACE_STD - -template