Commit c21bd952 by Abseil Team Committed by Copybara-Service

Add lifetime annotations to AlphaNum.

PiperOrigin-RevId: 504866618
Change-Id: I9519299946c693ae1bedd769a25a9cb5137f2f54
parent b4705164
...@@ -94,6 +94,7 @@ ...@@ -94,6 +94,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "absl/base/attributes.h"
#include "absl/base/port.h" #include "absl/base/port.h"
#include "absl/strings/internal/has_absl_stringify.h" #include "absl/strings/internal/has_absl_stringify.h"
#include "absl/strings/internal/stringify_sink.h" #include "absl/strings/internal/stringify_sink.h"
...@@ -287,23 +288,28 @@ class AlphaNum { ...@@ -287,23 +288,28 @@ class AlphaNum {
template <size_t size> template <size_t size>
AlphaNum( // NOLINT(runtime/explicit) AlphaNum( // NOLINT(runtime/explicit)
const strings_internal::AlphaNumBuffer<size>& buf) const strings_internal::AlphaNumBuffer<size>& buf
ABSL_ATTRIBUTE_LIFETIME_BOUND)
: piece_(&buf.data[0], buf.size) {} : piece_(&buf.data[0], buf.size) {}
AlphaNum(const char* c_str) // NOLINT(runtime/explicit) AlphaNum(const char* c_str // NOLINT(runtime/explicit)
: piece_(NullSafeStringView(c_str)) {} // NOLINT(runtime/explicit) ABSL_ATTRIBUTE_LIFETIME_BOUND)
AlphaNum(absl::string_view pc) : piece_(pc) {} // NOLINT(runtime/explicit) : piece_(NullSafeStringView(c_str)) {}
AlphaNum(absl::string_view pc // NOLINT(runtime/explicit)
ABSL_ATTRIBUTE_LIFETIME_BOUND)
: piece_(pc) {}
template <typename T, typename = typename std::enable_if< template <typename T, typename = typename std::enable_if<
strings_internal::HasAbslStringify<T>::value>::type> strings_internal::HasAbslStringify<T>::value>::type>
AlphaNum( // NOLINT(runtime/explicit) AlphaNum( // NOLINT(runtime/explicit)
const T& v, // NOLINT(runtime/explicit) const T& v ABSL_ATTRIBUTE_LIFETIME_BOUND,
strings_internal::StringifySink&& sink = {}) // NOLINT(runtime/explicit) strings_internal::StringifySink&& sink ABSL_ATTRIBUTE_LIFETIME_BOUND = {})
: piece_(strings_internal::ExtractStringification(sink, v)) {} : piece_(strings_internal::ExtractStringification(sink, v)) {}
template <typename Allocator> template <typename Allocator>
AlphaNum( // NOLINT(runtime/explicit) AlphaNum( // NOLINT(runtime/explicit)
const std::basic_string<char, std::char_traits<char>, Allocator>& str) const std::basic_string<char, std::char_traits<char>, Allocator>& str
ABSL_ATTRIBUTE_LIFETIME_BOUND)
: piece_(str) {} : piece_(str) {}
// Use string literals ":" instead of character literals ':'. // Use string literals ":" instead of character literals ':'.
......
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