https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104395
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- It doesn't seem very helpful for GCC and Clang to accept enum class align_val_t in C++98 mode, but not accept alignof in system headers. We could change all these uses to __alignof instead of alignof, which would work with C++98. But the semantics of alignof and __alignof are slightly different. Maybe the difference only matters for long long, and not for any overaligned types, but I'm not sure. I think the simple answer is that you should not use -faligned-new in C++98 mode.