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
 
 	/**