Re: static and constructors
AFAIK static globals are constructed before main() is called. I'm not sure about static locals of member functions, though.
But in your particular case I doubt that this would compile at all: Classes are not allowed to contain members of their own type (only pointers are allowed), and I somehow suppose that this applies to static member function locals as well.
OTOH, the rule that class members of the class' own type are not allowed is based on the fact that this would result in infinite object size. I think this would not apply to static member function locals, but I'm not sure whether the creators of the standard introduced an extra exception to the general rule for people doing daring things like you do...
I was thrown out of college for cheating on the metaphysics exam; I looked into the soul of the boy sitting next to me.
This is a snakeskin jacket! And for me it's a symbol of my individuality, and my belief... in personal freedom.