std::packaged_task trunk problem

Lars Gullik Bjønnes larsbj@gullik.org
Mon Nov 7 09:26:00 GMT 2011


Jonathan Wakely <jwakely.gcc@gmail.com> writes:

| On 3 November 2011 16:17, Jonathan Wakely wrote:
>>
>> Something like ...
>>
>> template<typename Moveable>
>> struct PretendToBeCopyable
>> {
>>  explicit PretendToBeCopyable(Moveable&& m) : m(m) {}
>
| Oops, that mem-initializer would need to be m(std::move(m))

This is the wrapper I ended up with. I had to remove the throw, it
triggered all the time.

template<typename Moveable>
struct PretendToBeCopyable
{
        explicit PretendToBeCopyable(Moveable&& m) : m(std::move(m)) {}
        PretendToBeCopyable(PretendToBeCopyable&&) = default;
        PretendToBeCopyable(PretendToBeCopyable& p)
                : m(std::move(p.m)) {}
        void operator()() { m(); }
private:
        Moveable m;
};

}

-- 
   Lgb



More information about the Gcc-help mailing list