diff --git a/alib2std/src/extensions/functional.hpp b/alib2std/src/extensions/functional.hpp index 992f227f80d5168b91186a1f6010371e03bdc2f4..d25aa9cb48397e3f954cf9a1f75a44a23e9b45ac 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 /**