Re: c++11 / unique_ptr with packaged_task

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1 March 2013 10:35, Jonathan Wakely wrote:
> On 1 March 2013 06:21, NightStrike wrote:
>> 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?
>
> The problem is that I implemented packaged_task using a std::function
> to hold the stored task, and std::function requires a
> CopyConstructible target object, but your function object is only
> MoveConstructible.
>
> This is a GCC bug, I think I can see an easy way to fix it, but it
> will have to wait for 4.8.1 because it's not a regression.

This is now http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56492


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux