My macro-vector types are type safe. In fact this is the point.
I do not think C++ is more expressive or type safe.