From 5b5caad7cd57d5ba3ca796bf1521b131d73ca405 Mon Sep 17 00:00:00 2001 From: Martin Moene Date: Fri, 18 Oct 2024 22:16:31 +0200 Subject: [PATCH] Introduce std11::addressof, after value now also for error (#70, thanks @DNKpp) --- include/nonstd/expected.hpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/include/nonstd/expected.hpp b/include/nonstd/expected.hpp index c678b96..35150df 100644 --- a/include/nonstd/expected.hpp +++ b/include/nonstd/expected.hpp @@ -614,24 +614,24 @@ class storage_t_noncopy_nonmove_impl // void construct_error( error_type const & e ) // { - // // new( &m_error ) error_type( e ); + // // new( std11::addressof(m_error) ) error_type( e ); // } // void construct_error( error_type && e ) // { - // // new( &m_error ) error_type( std::move( e ) ); + // // new( std11::addressof(m_error) ) error_type( std::move( e ) ); // } template< class... Args > void emplace_error( Args&&... args ) { - new( &m_error ) error_type( std::forward(args)...); + new( std11::addressof(m_error) ) error_type( std::forward(args)...); } template< class U, class... Args > void emplace_error( std::initializer_list il, Args&&... args ) { - new( &m_error ) error_type( il, std::forward(args)... ); + new( std11::addressof(m_error) ) error_type( il, std::forward(args)... ); } void destruct_error() @@ -760,24 +760,24 @@ class storage_t_impl void construct_error( error_type const & e ) { - new( &m_error ) error_type( e ); + new( std11::addressof(m_error) ) error_type( e ); } void construct_error( error_type && e ) { - new( &m_error ) error_type( std::move( e ) ); + new( std11::addressof(m_error) ) error_type( std::move( e ) ); } template< class... Args > void emplace_error( Args&&... args ) { - new( &m_error ) error_type( std::forward(args)...); + new( std11::addressof(m_error) ) error_type( std::forward(args)...); } template< class U, class... Args > void emplace_error( std::initializer_list il, Args&&... args ) { - new( &m_error ) error_type( il, std::forward(args)... ); + new( std11::addressof(m_error) ) error_type( il, std::forward(args)... ); } void destruct_error() @@ -876,24 +876,24 @@ struct storage_t_impl< void, E > void construct_error( error_type const & e ) { - new( &m_error ) error_type( e ); + new( std11::addressof(m_error) ) error_type( e ); } void construct_error( error_type && e ) { - new( &m_error ) error_type( std::move( e ) ); + new( std11::addressof(m_error) ) error_type( std::move( e ) ); } template< class... Args > void emplace_error( Args&&... args ) { - new( &m_error ) error_type( std::forward(args)...); + new( std11::addressof(m_error) ) error_type( std::forward(args)...); } template< class U, class... Args > void emplace_error( std::initializer_list il, Args&&... args ) { - new( &m_error ) error_type( il, std::forward(args)... ); + new( std11::addressof(m_error) ) error_type( il, std::forward(args)... ); } void destruct_error()