c++11 / unique_ptr with packaged_task

NightStrike nightstrike@gmail.com
Fri Mar 1 06:22:00 GMT 2013


This code compiles with clang/libc++, but doesn't with gcc4.8/libstdc++:

#include <functional>
#include <future>
#include <iostream>
#include <memory>
#include <ostream>

struct S
{
        void f()
        {
                std::cerr << "Meep meep\n";
        }
};

int main()
{
        std::unique_ptr<S> sp(new S);
        std::packaged_task<void ()> pt(std::bind(&S::f, std::move(sp)));
        pt();
        std::cerr << "sp is empty: " << std::boolalpha << !sp << std::endl;
}



Is that a bug in gcc?



More information about the Gcc-help mailing list