Конструктор перемещения вызывается дважды при перемещении конструкции std::function из лямбды, которая имеет захваты по C++

Программы на C++. Форум разработчиков
Anonymous
Конструктор перемещения вызывается дважды при перемещении конструкции std::function из лямбды, которая имеет захваты по

Сообщение Anonymous »

При перемещении объекта std::function из lambda, где эта лямбда имеет захваты по значению, оказывается, что конструктор перемещения объекта, который < em>value-captured вызывается дважды. Рассмотрим

Код: Выделить всё

#include 
#include 

struct Foo
{
int value = 1;

Foo() = default;

Foo(const Foo &) {}

Foo(Foo &&)
{
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/62591304/move-constructor-called-twice-when-move-constructing-a-stdfunction-from-a-lamb[/url]

Вернуться в «C++»