diff options
author | Abseil Team <absl-team@google.com> | 2018-05-11T12·42-0700 |
---|---|---|
committer | jueminyang <jueminyang@google.com> | 2018-05-11T15·42-0400 |
commit | dd9911a004edcc34152850a6216bb3b53ad6bb82 (patch) | |
tree | da942588037ba40fb501399b40c1fdec5431448f | |
parent | 7454bdded7878b10dcdf8d5c64756c7a87e46500 (diff) |
- da802ce3de569d5af0bfc5888c8a0d823548b544 Removes private method pointer() from optional and adds a... by Abseil Team <absl-team@google.com>
GitOrigin-RevId: da802ce3de569d5af0bfc5888c8a0d823548b544 Change-Id: Ic9c0a0771c90a5484b459655c8b25b36ffd8c3f0
-rw-r--r-- | absl/types/optional.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/absl/types/optional.h b/absl/types/optional.h index 4dcf479615bd..42068cca43f4 100644 --- a/absl/types/optional.h +++ b/absl/types/optional.h @@ -776,10 +776,13 @@ class optional : private optional_internal::optional_data<T>, // `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<T>, } 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_; } |