This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: std::packaged_task trunk problem
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