Every now and then I see people writing C++ code containing heresy in the vein of the following:
This is no more legal C++ than
const int qux = 42;
int * quux = &qux;
It is not undefined, unspecified or implementation defined! It is simply illegal
Ever since introduction of C++03 the standard committee set out to fix many minor annoyances in the language (auto, ranged for and initializer lists to name a few). Most of those are new things that cannot change the behaviour of existing code, but there are, of course, exceptions. In C++03 the first line of the following code was ill-formed, because >> was parsed as operator>>.
std::vector<std::vector<int>> X; // ill-formed
std::vector<std::vector<int> > Y; // ok