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.