Huh? Marking myClass static would make it static. Assignment has nothing to do with it.

It's invalid because the designers of C++ didn't include it in the C++ standard. The reasons are probably lost in time. Perhaps nobody thought of suggesting it. Perhaps it was deemed redundant, and the complexity of defining the semantics in relation to initializer lists not worth it. Perhaps people thought that not having all initialization in the same place (the constructor initializer list) would make the code harder to read.

Java's designers added direct initializers, but subtle aspects guiding such a decision are very different in Java than in C++.

Even one more reason typedefs are so incredibly evil. There was no hint that it was a pointer here. Misleading typedef name, as well.
Don't do it! In this case, it's far better to not use a typedef, even if it means not being consistent.

Originally Posted by Adak

io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.

Originally Posted by Salem

You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.