Ticket #6174: newpatch.patch

File newpatch.patch, 3.6 KB (added by onlyone@…, 10 years ago)

Patch for 6174, as well for the incorrect tests for 6174

  • boost/thread/future.hpp

     
    484484            void mark_finished_with_result(rvalue_source_type result_)
    485485            {
    486486                boost::lock_guard<boost::mutex> lock(mutex);
    487                 mark_finished_with_result_internal(result_);
     487                mark_finished_with_result_internal(static_cast<rvalue_source_type>(result_));
    488488            }
    489489
    490490            move_dest_type get()
  • libs/thread/test/test_6174.cpp

     
    1 
    2 
    31#include <boost/thread.hpp>
    42#include <boost/config.hpp>
    53
    64#ifndef BOOST_NO_RVALUE_REFERENCES
    75struct MovableButNonCopyable {
    8 #if ! defined BOOST_NO_DELETED_FUNCTIONS
    9       MovableButNonCopyable(MovableButNonCopyable const&) = delete;
    10       MovableButNonCopyable& operator=(MovableButNonCopyable const&) = delete;
     6#ifndef BOOST_NO_DELETED_FUNCTIONS
     7    MovableButNonCopyable(MovableButNonCopyable const&) = delete;
     8    MovableButNonCopyable& operator=(MovableButNonCopyable const&) = delete;
    119#else
    1210private:
    1311    MovableButNonCopyable(MovableButNonCopyable const&);
    1412    MovableButNonCopyable& operator=(MovableButNonCopyable const&);
    1513#endif
    1614public:
    17     MovableButNonCopyable() {};
    18     MovableButNonCopyable(MovableButNonCopyable&&) {};
    19     MovableButNonCopyable& operator=(MovableButNonCopyable&&) {
    20       return *this;
    21     };
     15    MovableButNonCopyable() {}
     16    MovableButNonCopyable(MovableButNonCopyable&&) {}
     17    MovableButNonCopyable& operator=(MovableButNonCopyable&&)
     18    {
     19        return *this;
     20    }
    2221};
     22MovableButNonCopyable construct() {
     23    return MovableButNonCopyable();
     24}
    2325int main()
    2426{
    25     boost::packaged_task<MovableButNonCopyable>(MovableButNonCopyable());
     27    boost::packaged_task<MovableButNonCopyable> pt(construct);
     28    pt();
    2629    return 0;
    2730}
    2831#else
  • libs/thread/test/Jamfile.v2

     
    2727        <toolset>gcc:<cxxflags>-Wextra
    2828        <toolset>gcc:<cxxflags>-pedantic
    2929        <toolset>gcc:<cxxflags>-Wno-long-long
    30         #<toolset>gcc:<cxxflags>-ansi
    31         #<toolset>gcc:<cxxflags>-fpermissive
    3230
    3331        <toolset>darwin:<cxxflags>-Wextra
    3432        <toolset>darwin:<cxxflags>-pedantic
    3533        <toolset>darwin:<cxxflags>-Wno-long-long
    36         #<toolset>darwin:<cxxflags>-ansi # doesn't work for 4.1.2
    3734        <toolset>darwin:<cxxflags>-fpermissive
    3835
    3936        #<toolset>pathscale:<cxxflags>-Wextra
     
    4340        <toolset>clang:<cxxflags>-Wextra
    4441        <toolset>clang:<cxxflags>-pedantic
    4542        <toolset>clang:<cxxflags>-Wno-long-long
    46         <toolset>clang:<cxxflags>-ansi
    47         #<toolset>clang:<cxxflags>-fpermissive # doesn't work
    4843
    4944        <toolset>gcc-mingw-4.4.0:<cxxflags>-fdiagnostics-show-option
    5045        <toolset>gcc-mingw-4.5.0:<cxxflags>-fdiagnostics-show-option
     
    5348        <toolset>gcc-mingw-4.7.0:<cxxflags>-fdiagnostics-show-option
    5449        <toolset>gcc-mingw-4.8.0:<cxxflags>-fdiagnostics-show-option
    5550
    56         <toolset>darwin-4.6.2:<cxxflags>-ansi
    57         #<toolset>darwin-4.6.2:<cxxflags>-Wno-delete-non-virtual-dtor # doesn't work
    58         <toolset>darwin-4.7.0:<cxxflags>-ansi
    5951        <toolset>darwin-4.7.0:<cxxflags>-Wno-delete-non-virtual-dtor
    6052
    6153        #<toolset>clang-2.8:<cxxflags>-Wno-delete-non-virtual-dtor