Why are default arguments in C++ trailing ones?
Just to supplement @tenfour's answer. C++ FAQ Lite has a topic describing named parameters and I think the topic addresses your issue to some extent.