Export of internal Abseil changes

--
2aa219620f39aa490fa989f5d92e1bd3e52a46c5 by Abseil Team <absl-team@google.com>:

Add lifetime annotations to FunctionRef.

PiperOrigin-RevId: 392131866
GitOrigin-RevId: 2aa219620f39aa490fa989f5d92e1bd3e52a46c5
Change-Id: I295b808986857e46a565e047db25a951dd7ce0e3
pull/1008/head
Abseil Team 4 years ago committed by rogeeff
parent f39e6ad475
commit 9134967d01
  1. 1
      absl/functional/BUILD.bazel
  2. 1
      absl/functional/CMakeLists.txt
  3. 4
      absl/functional/function_ref.h

@ -60,6 +60,7 @@ cc_library(
linkopts = ABSL_DEFAULT_LINKOPTS,
deps = [
"//absl/base:base_internal",
"//absl/base:core_headers",
"//absl/meta:type_traits",
],
)

@ -53,6 +53,7 @@ absl_cc_library(
${ABSL_DEFAULT_COPTS}
DEPS
absl::base_internal
absl::core_headers
absl::meta
PUBLIC
)

@ -50,6 +50,7 @@
#include <functional>
#include <type_traits>
#include "absl/base/attributes.h"
#include "absl/functional/internal/function_ref.h"
#include "absl/meta/type_traits.h"
@ -98,7 +99,8 @@ class FunctionRef<R(Args...)> {
public:
// Constructs a FunctionRef from any invokable type.
template <typename F, typename = EnableIfCompatible<const F&>>
FunctionRef(const F& f) // NOLINT(runtime/explicit)
// NOLINTNEXTLINE(runtime/explicit)
FunctionRef(const F& f ABSL_ATTRIBUTE_LIFETIME_BOUND)
: invoker_(&absl::functional_internal::InvokeObject<F, R, Args...>) {
absl::functional_internal::AssertNonNull(f);
ptr_.obj = &f;

Loading…
Cancel
Save