From 6fb839489010ddea446b14e2fd2c6e619201acd1 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 21 Nov 2018 17:02:54 +0100 Subject: [PATCH] fix reference wrapper extension --- alib2std/src/extensions/functional.hpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/alib2std/src/extensions/functional.hpp b/alib2std/src/extensions/functional.hpp index 992f227f80..d25aa9cb48 100644 --- a/alib2std/src/extensions/functional.hpp +++ b/alib2std/src/extensions/functional.hpp @@ -79,30 +79,22 @@ public: #ifndef __clang__ - /** - * Default constructor needed by g++ since it is not inherited. - */ - reference_wrapper ( ) = default; - /** * Copy constructor needed by g++ since it is not inherited. */ reference_wrapper ( const reference_wrapper & other ) = default; - /** - * Move constructor needed by g++ since it is not inherited. - */ - reference_wrapper ( reference_wrapper && other ) = default; - /** * Copy operator = needed by g++ since it is not inherited. */ - reference_wrapper & operator = ( reference_wrapper && other ) = default; + reference_wrapper & operator = ( const reference_wrapper & other ) = default; /** - * Move operator = needed by g++ since it is not inherited. + * Overload to allow wrapping object in assignment. */ - reference_wrapper & operator = ( const reference_wrapper & other ) = default; + reference_wrapper & operator = ( T & object ) { + return * this = reference_wrapper < T > ( object ); + } #endif /** -- GitLab