diff --git a/include/boost/bind/bind.hpp b/include/boost/bind/bind.hpp index 11fcb2a5..2d5b454e 100644 --- a/include/boost/bind/bind.hpp +++ b/include/boost/bind/bind.hpp @@ -311,7 +311,7 @@ template class bind_t typedef typename result_traits::type result_type; typedef bind_t this_type; - bind_t( F f, L const & l ): f_( f ), l_( l ) {} + bind_t( F f, L const & l ): f_( std::move(f) ), l_( l ) {} // @@ -497,7 +497,7 @@ template BOOST_BIND( F f, A... a ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a... ) ); + return _bi::bind_t( std::move(f), list_type( a... ) ); } #else @@ -510,7 +510,7 @@ template BOOST_BIND( F f ) { typedef typename _bi::list_av<>::type list_type; - return _bi::bind_t( f, list_type() ); + return _bi::bind_t( std::move(f), list_type() ); } template @@ -518,7 +518,7 @@ template BOOST_BIND( F f, A1 a1 ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a1 ) ); + return _bi::bind_t( std::move(f), list_type( a1 ) ); } template @@ -526,7 +526,7 @@ template BOOST_BIND( F f, A1 a1, A2 a2 ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a1, a2 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2 ) ); } template @@ -534,7 +534,7 @@ template BOOST_BIND( F f, A1 a1, A2 a2, A3 a3 ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3 ) ); } template @@ -542,7 +542,7 @@ template BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4 ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4 ) ); } template @@ -550,7 +550,7 @@ template BOOST_BIND( F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4, a5 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4, a5 ) ); } template @@ -558,7 +558,7 @@ template::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4, a5, a6 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4, a5, a6 ) ); } template @@ -566,7 +566,7 @@ template::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4, a5, a6, a7 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7 ) ); } template @@ -574,7 +574,7 @@ template::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4, a5, a6, a7, a8 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8 ) ); } template @@ -582,7 +582,7 @@ template::type list_type; - return _bi::bind_t( f, list_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) ); + return _bi::bind_t( std::move(f), list_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) ); } #endif @@ -594,7 +594,7 @@ template BOOST_BIND( boost::type, F f, A... a ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t( f, list_type( a... ) ); + return _bi::bind_t( std::move(f), list_type( a... ) ); } // adaptable function objects @@ -604,7 +604,7 @@ template BOOST_BIND( F f, A... a ) { typedef typename _bi::list_av::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>( f, list_type( a... ) ); + return _bi::bind_t<_bi::unspecified, F, list_type>( std::move(f), list_type( a... ) ); } // function pointers