https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108594
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|DUPLICATE |INVALID --- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Ah yes, thanks, I didn't read it properly! The reason it compiles with GCC and not other compilers is that GCC defaults to -std=gnu++17 If you use -std=c++17 with Clang or /std:c++17 with MSVC then you get the same behaviour.