https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83981

--- Comment #8 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I don't think your patch is correct. The whole point of the "move if noexcept"
utilities is that they handle this correctly. If the type is nothrow movable,
then move. Otherwise if it is copyable, then copy. Otherwise move (even though
that might throw).

The problem here is that boost::optional<foo> pretends to be copyable, but then
fails in its copy constructor because foo is not copyable.

Reply via email to