Commit e8304a5c by Copybara-Service

Merge pull request #1283 from pateldeev:any_inovcable_rename_true

PiperOrigin-RevId: 478009291
Change-Id: I136dffd1383e42ae499c318132e9d789f3a859b9
parents ba785235 54f3476f
...@@ -683,23 +683,23 @@ using UnwrapStdReferenceWrapper = ...@@ -683,23 +683,23 @@ using UnwrapStdReferenceWrapper =
// An alias that always yields std::true_type (used with constraints) where // An alias that always yields std::true_type (used with constraints) where
// substitution failures happen when forming the template arguments. // substitution failures happen when forming the template arguments.
template <class... T> template <class... T>
using True = using TrueAlias =
std::integral_constant<bool, sizeof(absl::void_t<T...>*) != 0>; std::integral_constant<bool, sizeof(absl::void_t<T...>*) != 0>;
/*SFINAE constraints for the conversion-constructor.*/ /*SFINAE constraints for the conversion-constructor.*/
template <class Sig, class F, template <class Sig, class F,
class = absl::enable_if_t< class = absl::enable_if_t<
!std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>> !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using CanConvert = using CanConvert = TrueAlias<
True<absl::enable_if_t<!IsInPlaceType<RemoveCVRef<F>>::value>, absl::enable_if_t<!IsInPlaceType<RemoveCVRef<F>>::value>,
absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>,
absl::enable_if_t< absl::enable_if_t<
Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>,
absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value>>; absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value>>;
/*SFINAE constraints for the std::in_place constructors.*/ /*SFINAE constraints for the std::in_place constructors.*/
template <class Sig, class F, class... Args> template <class Sig, class F, class... Args>
using CanEmplace = True< using CanEmplace = TrueAlias<
absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>,
absl::enable_if_t< absl::enable_if_t<
Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>,
...@@ -709,19 +709,19 @@ using CanEmplace = True< ...@@ -709,19 +709,19 @@ using CanEmplace = True<
template <class Sig, class F, template <class Sig, class F,
class = absl::enable_if_t< class = absl::enable_if_t<
!std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>> !std::is_same<RemoveCVRef<F>, AnyInvocable<Sig>>::value>>
using CanAssign = using CanAssign = TrueAlias<
True<absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>, absl::enable_if_t<Impl<Sig>::template CallIsValid<F>::value>,
absl::enable_if_t< absl::enable_if_t<
Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>, Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<F>::value>,
absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value>>; absl::enable_if_t<std::is_constructible<absl::decay_t<F>, F>::value>>;
/*SFINAE constraints for the reference-wrapper conversion-assign operator.*/ /*SFINAE constraints for the reference-wrapper conversion-assign operator.*/
template <class Sig, class F> template <class Sig, class F>
using CanAssignReferenceWrapper = using CanAssignReferenceWrapper = TrueAlias<
True<absl::enable_if_t< absl::enable_if_t<
Impl<Sig>::template CallIsValid<std::reference_wrapper<F>>::value>, Impl<Sig>::template CallIsValid<std::reference_wrapper<F>>::value>,
absl::enable_if_t<Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept< absl::enable_if_t<Impl<Sig>::template CallIsNoexceptIfSigIsNoexcept<
std::reference_wrapper<F>>::value>>; std::reference_wrapper<F>>::value>>;
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// //
...@@ -778,7 +778,7 @@ using CanAssignReferenceWrapper = ...@@ -778,7 +778,7 @@ using CanAssignReferenceWrapper =
\ \
/*SFINAE constraint to check if F is invocable with the proper signature*/ \ /*SFINAE constraint to check if F is invocable with the proper signature*/ \
template <class F> \ template <class F> \
using CallIsValid = True<absl::enable_if_t<absl::disjunction< \ using CallIsValid = TrueAlias<absl::enable_if_t<absl::disjunction< \
absl::base_internal::is_invocable_r<ReturnType, \ absl::base_internal::is_invocable_r<ReturnType, \
absl::decay_t<F> inv_quals, P...>, \ absl::decay_t<F> inv_quals, P...>, \
std::is_same<ReturnType, \ std::is_same<ReturnType, \
...@@ -788,8 +788,8 @@ using CanAssignReferenceWrapper = ...@@ -788,8 +788,8 @@ using CanAssignReferenceWrapper =
/*SFINAE constraint to check if F is nothrow-invocable when necessary*/ \ /*SFINAE constraint to check if F is nothrow-invocable when necessary*/ \
template <class F> \ template <class F> \
using CallIsNoexceptIfSigIsNoexcept = \ using CallIsNoexceptIfSigIsNoexcept = \
True<ABSL_INTERNAL_ANY_INVOCABLE_NOEXCEPT_CONSTRAINT(inv_quals, \ TrueAlias<ABSL_INTERNAL_ANY_INVOCABLE_NOEXCEPT_CONSTRAINT(inv_quals, \
noex)>; \ noex)>; \
\ \
/*Put the AnyInvocable into an empty state.*/ \ /*Put the AnyInvocable into an empty state.*/ \
Impl() = default; \ Impl() = default; \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment