Index: boost/thread/future.hpp =================================================================== --- boost/thread/future.hpp (revision 79600) +++ boost/thread/future.hpp (working copy) @@ -484,7 +484,7 @@ void mark_finished_with_result(rvalue_source_type result_) { boost::lock_guard lock(mutex); - mark_finished_with_result_internal(result_); + mark_finished_with_result_internal(static_cast(result_)); } move_dest_type get() Index: libs/thread/test/test_6174.cpp =================================================================== --- libs/thread/test/test_6174.cpp (revision 79600) +++ libs/thread/test/test_6174.cpp (working copy) @@ -1,28 +1,31 @@ - - #include #include #ifndef BOOST_NO_RVALUE_REFERENCES struct MovableButNonCopyable { -#if ! defined BOOST_NO_DELETED_FUNCTIONS - MovableButNonCopyable(MovableButNonCopyable const&) = delete; - MovableButNonCopyable& operator=(MovableButNonCopyable const&) = delete; +#ifndef BOOST_NO_DELETED_FUNCTIONS + MovableButNonCopyable(MovableButNonCopyable const&) = delete; + MovableButNonCopyable& operator=(MovableButNonCopyable const&) = delete; #else private: MovableButNonCopyable(MovableButNonCopyable const&); MovableButNonCopyable& operator=(MovableButNonCopyable const&); #endif public: - MovableButNonCopyable() {}; - MovableButNonCopyable(MovableButNonCopyable&&) {}; - MovableButNonCopyable& operator=(MovableButNonCopyable&&) { - return *this; - }; + MovableButNonCopyable() {} + MovableButNonCopyable(MovableButNonCopyable&&) {} + MovableButNonCopyable& operator=(MovableButNonCopyable&&) + { + return *this; + } }; +MovableButNonCopyable construct() { + return MovableButNonCopyable(); +} int main() { - boost::packaged_task(MovableButNonCopyable()); + boost::packaged_task pt(construct); + pt(); return 0; } #else Index: libs/thread/test/Jamfile.v2 =================================================================== --- libs/thread/test/Jamfile.v2 (revision 79600) +++ libs/thread/test/Jamfile.v2 (working copy) @@ -27,13 +27,10 @@ gcc:-Wextra gcc:-pedantic gcc:-Wno-long-long - #gcc:-ansi - #gcc:-fpermissive darwin:-Wextra darwin:-pedantic darwin:-Wno-long-long - #darwin:-ansi # doesn't work for 4.1.2 darwin:-fpermissive #pathscale:-Wextra @@ -43,8 +40,6 @@ clang:-Wextra clang:-pedantic clang:-Wno-long-long - clang:-ansi - #clang:-fpermissive # doesn't work gcc-mingw-4.4.0:-fdiagnostics-show-option gcc-mingw-4.5.0:-fdiagnostics-show-option @@ -53,9 +48,6 @@ gcc-mingw-4.7.0:-fdiagnostics-show-option gcc-mingw-4.8.0:-fdiagnostics-show-option - darwin-4.6.2:-ansi - #darwin-4.6.2:-Wno-delete-non-virtual-dtor # doesn't work - darwin-4.7.0:-ansi darwin-4.7.0:-Wno-delete-non-virtual-dtor #clang-2.8:-Wno-delete-non-virtual-dtor