From 7a49a5d80d08a2a0176067ba6dbf496d579ab491 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Mon, 24 Feb 2025 19:46:43 +0200 Subject: [PATCH] Change assertions in operator* to match documentation; improves codegen slightly in the result case --- include/boost/system/result.hpp | 35 ++++++++++----------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/include/boost/system/result.hpp b/include/boost/system/result.hpp index 456a7929..539113c2 100644 --- a/include/boost/system/result.hpp +++ b/include/boost/system/result.hpp @@ -332,40 +332,28 @@ template class result BOOST_CXX14_CONSTEXPR T& operator*() noexcept { - T* p = operator->(); - - BOOST_ASSERT( p != 0 ); - - return *p; + BOOST_ASSERT( has_value() ); + return *operator->(); } BOOST_CXX14_CONSTEXPR T const& operator*() const noexcept { - T const* p = operator->(); - - BOOST_ASSERT( p != 0 ); - - return *p; + BOOST_ASSERT( has_value() ); + return *operator->(); } #else BOOST_CXX14_CONSTEXPR T& operator*() & noexcept { - T* p = operator->(); - - BOOST_ASSERT( p != 0 ); - - return *p; + BOOST_ASSERT( has_value() ); + return *operator->(); } BOOST_CXX14_CONSTEXPR T const& operator*() const & noexcept { - T const* p = operator->(); - - BOOST_ASSERT( p != 0 ); - - return *p; + BOOST_ASSERT( has_value() ); + return *operator->(); } template @@ -838,11 +826,8 @@ template class result BOOST_CXX14_CONSTEXPR U& operator*() const noexcept { - U* p = operator->(); - - BOOST_ASSERT( p != 0 ); - - return *p; + BOOST_ASSERT( has_value() ); + return *operator->(); } // error access