...but there's no way to do it with typedef?

It's not only the topLeft to TopLeft and extent to Extent, I was hoping to also do this:

Code:
typedef RectangleType::topLeft::x RectangleType::X;
typedef RectangleType::topLeft::y RectangleType::Y;
typedef RectangleType::extent::x RectangleType::W;
typedef RectangleType::extent::x RectangleType::H;
Macros wouldn't work in this, for spacing reasons.