Opened 5 years ago

Last modified 5 years ago

#13520 new Bugs

Cant add capture-by-move lambda to channel

Reported by: kreuzerkrieg@… Owned by: olli
Milestone: To Be Determined Component: context
Version: Boost 1.66.0 Severity: Not Applicable
Keywords: fibers Cc:

Description

The following code isnt working if the test is move-only

using task = std::function<void()>;
boost::fibers::buffered_channel<task> ch{1024};
test tst;
ch.push([t{std::move(tst)}]() { t.print(); });

Full repro: http://coliru.stacked-crooked.com/a/88dec3ea76a41ea1

Change History (2)

comment:1 by kreuzerkrieg@…, 5 years ago

I retract my claim. I forgot (again) that std::function must be copyable and copyconstructible. The problem is in the std::function stored in the channel and not the channel itself

comment:2 by anonymous, 5 years ago

Severity: ProblemNot Applicable
Note: See TracTickets for help on using tickets.