From ce65f5ac3cbf897bb5e3de1a51d80fd00866abaa Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Wed, 22 May 2019 05:06:50 -0700 Subject: Export of internal Abseil changes. -- 1edfe05ddddca43e7650b2d790df7c8498c0e588 by Abseil Team : Adding an assert to catch various misuses of std::optional. PiperOrigin-RevId: 249427865 -- 45463bbb7e59dfbc584b2f024368a63db98bd7a8 by CJ Johnson : Migrates internal member function GetAllocator() to GetAllocPtr() and changes the return type to pointer instead of reference to avoid unnecessary copy in DestroyElements(...) PiperOrigin-RevId: 249319571 -- 507835be22af85676143ee0c43a80a52bc32094c by Abseil Team : Fix -Wstring-conversion in GetEnvVar (Windows implementation). PiperOrigin-RevId: 249201897 GitOrigin-RevId: 1edfe05ddddca43e7650b2d790df7c8498c0e588 Change-Id: I9300131887ee507cf80d399c724cf87341e4f11a --- absl/types/optional.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'absl/types') diff --git a/absl/types/optional.h b/absl/types/optional.h index 1670022..142dc83 100644 --- a/absl/types/optional.h +++ b/absl/types/optional.h @@ -421,7 +421,9 @@ class optional : private optional_internal::optional_data, // // Accesses the underlying `T` value of an `optional`. If the `optional` is // empty, behavior is undefined. - constexpr const T& operator*() const & { return reference(); } + constexpr const T& operator*() const& { + return ABSL_ASSERT(this->engaged_), reference(); + } T& operator*() & { assert(this->engaged_); return reference(); -- cgit v1.2.3