So apparently
Code:
Foo(int x){ ... }
Foo(int x, int y) : Foo(x) {....}
is not valid. Yet this is allowed for base class initialization (trivially, Foo is a base class of itself.)
Why is this? I mean there must be some good reason as I can't imagine Bjarne in his infinite wisdom would deny such a handy construct....

p.s. the best alternative I could find was using a common"init()" function in all constructors... such a horrid waste of syntax.