6565
6666#include " absl/base/attributes.h"
6767#include " absl/base/config.h"
68- #include " absl/base/internal/invoke.h"
6968#include " absl/base/macros.h"
7069#include " absl/base/optimization.h"
7170#include " absl/meta/type_traits.h"
@@ -123,7 +122,7 @@ using RemoveCVRef =
123122template <class ReturnType , class F , class ... P,
124123 typename = absl::enable_if_t <std::is_void<ReturnType>::value>>
125124void InvokeR (F&& f, P&&... args) {
126- absl::base_internal ::invoke (std::forward<F>(f), std::forward<P>(args)...);
125+ std ::invoke (std::forward<F>(f), std::forward<P>(args)...);
127126}
128127
129128template <class ReturnType , class F , class ... P,
@@ -134,8 +133,7 @@ ReturnType InvokeR(F&& f, P&&... args) {
134133#pragma GCC diagnostic push
135134#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
136135#endif
137- return absl::base_internal::invoke (std::forward<F>(f),
138- std::forward<P>(args)...);
136+ return std::invoke (std::forward<F>(f), std::forward<P>(args)...);
139137#if ABSL_INTERNAL_HAVE_MIN_GNUC_VERSION(12, 0)
140138#pragma GCC diagnostic pop
141139#endif
@@ -714,7 +712,7 @@ using CanAssignReferenceWrapper = TrueAlias<
714712 UnwrapStdReferenceWrapper<absl::decay_t <F>> inv_quals, P...>, \
715713 std::is_same< \
716714 ReturnType, \
717- absl::base_internal:: invoke_result_t < \
715+ std:: invoke_result_t < \
718716 UnwrapStdReferenceWrapper<absl::decay_t <F>> inv_quals, \
719717 P...>>>>::value>
720718
@@ -730,10 +728,10 @@ using CanAssignReferenceWrapper = TrueAlias<
730728// noex is "true" if the function type is noexcept, or false if it is not.
731729//
732730// The CallIsValid condition is more complicated than simply using
733- // absl::base_internal:: is_invocable_r because we can't rely on it to give the
734- // right result when ReturnType is non-moveable in toolchains that don't treat
735- // non-moveable result types correctly. For example this was the case in libc++
736- // before commit c3a24882 (2022-05).
731+ // std:: is_invocable_r because we can't rely on it to give the right result
732+ // when ReturnType is non-moveable in toolchains that don't treat non-moveable
733+ // result types correctly. For example this was the case in libc++ before commit
734+ // c3a24882 (2022-05).
737735#define ABSL_INTERNAL_ANY_INVOCABLE_IMPL_ (cv, ref, inv_quals, noex ) \
738736 template <class ReturnType , class ... P> \
739737 class Impl <ReturnType(P...) cv ref noexcept (noex)> \
@@ -745,11 +743,10 @@ using CanAssignReferenceWrapper = TrueAlias<
745743 /* SFINAE constraint to check if F is invocable with the proper signature*/ \
746744 template <class F > \
747745 using CallIsValid = TrueAlias<absl::enable_if_t <absl::disjunction< \
748- absl::base_internal::is_invocable_r<ReturnType, \
749- absl::decay_t <F> inv_quals, P...>, \
750- std::is_same<ReturnType, \
751- absl::base_internal::invoke_result_t < \
752- absl::decay_t <F> inv_quals, P...>>>::value>>; \
746+ std::is_invocable_r<ReturnType, absl::decay_t <F> inv_quals, P...>, \
747+ std::is_same< \
748+ ReturnType, \
749+ std::invoke_result_t <absl::decay_t <F> inv_quals, P...>>>::value>>; \
753750 \
754751 /* SFINAE constraint to check if F is nothrow-invocable when necessary*/ \
755752 template <class F > \
0 commit comments