From dd9911a004edcc34152850a6216bb3b53ad6bb82 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Fri, 11 May 2018 05:42:49 -0700 Subject: [PATCH] - da802ce3de569d5af0bfc5888c8a0d823548b544 Removes private method pointer() from optional and adds a... by Abseil Team GitOrigin-RevId: da802ce3de569d5af0bfc5888c8a0d823548b544 Change-Id: Ic9c0a0771c90a5484b459655c8b25b36ffd8c3f0 --- absl/types/optional.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/absl/types/optional.h b/absl/types/optional.h index 4dcf47961..42068cca4 100644 --- a/absl/types/optional.h +++ b/absl/types/optional.h @@ -776,10 +776,13 @@ class optional : private optional_internal::optional_data, // `optional` is empty, behavior is undefined. // // If you need myOpt->foo in constexpr, use (*myOpt).foo instead. - const T* operator->() const { return this->pointer(); } + const T* operator->() const { + assert(this->engaged_); + return std::addressof(this->data_); + } T* operator->() { assert(this->engaged_); - return this->pointer(); + return std::addressof(this->data_); } // optional::operator*() @@ -871,10 +874,6 @@ class optional : private optional_internal::optional_data, } private: - // Private accessors for internal storage viewed as pointer to T. - const T* pointer() const { return std::addressof(this->data_); } - T* pointer() { return std::addressof(this->data_); } - // Private accessors for internal storage viewed as reference to T. constexpr const T& reference() const { return this->data_; } T& reference() { return this->data_; }