https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79789
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- And this fails since 5.1.0 with C++11 or later: #define e 1 #include <ios> And this fails for all versions at least as far back as 4.3 (although it's only valid in C++98 and C++03 because C++11 adds member functions called a() in <random>): #define a 1 #include <valarray> There are a few other problems too.