https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102567
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|UNCONFIRMED |RESOLVED
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This is not a libstdc++ bug, we implement what the standard says.
Maybe it used to compile, but it was meaningless. You could say it was a
function of void() noexcept, but you could still store a target function that
throwed, and its operator() could still throw.
Both std::move_only_function (P0288) and std::function_ref (P0792) support
using a function type that is optionally const-qualified and optionally
noexcept, and it actually means something (it affects what you can store in
there, and whether they can modify a stateful target object, and whether their
operator() is noexcept or not). std::function is not going to get updated
though.