https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86943
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[8/9 Regression] Wrong code |[7/8/9 Regression] Wrong
|when converting stateless |code when converting
|generic lambda to function |stateless generic lambda to
|pointer |function pointer
Known to fail| |7.3.1
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I see the wrong behaviour for GCC 7.3.1 so it seems to have regressed since
7.3.0
I think GCC is allowed to use a default constructor then move constructor in
C++14 mode, although ideally it would elide the move. In C++17 mode I think
it's required to elide it.
So Clang and EDG's behaviour is preferable for C++14, and required for C++17.