[Interest] connect() is copying lambdas - can this be avoided?
Nikos Chantziaras
realnc at gmail.com
Thu Aug 10 14:36:09 CEST 2017
On 10/08/17 01:05, Thiago Macieira wrote:
> On quarta-feira, 9 de agosto de 2017 08:04:16 PDT Nikos Chantziaras wrote:
>> It seems that connect() is copying its lambda parameter around. That
>> means that if a lambda capture contains a non-copyable object, like a
>> unique_ptr, connect() cannot be used:
>>
>> {
>> auto ptr = std::make_unique<int>(0);
>> connect(this, &MyQObject::mySignal,
>> [ptr = std::move(ptr)]() mutable { });
>> }
>
> How do you propose we keep the connection alive after the scope ends, if we
> don't copy the lambda?
As mentioned by the others, this seems to have already been brought up
some months ago. Furthermore, you're the reviewer for the changes:
https://codereview.qt-project.org/#/c/192417
https://codereview.qt-project.org/#/c/192416
Reviewed-by: Thiago Macieira <thiago.macieira at intel.com>
;-)
More information about the Interest
mailing list