Hi Peter!
1. I don't think there is. The boost library has a feature to explicitly use a default parameter when calling a function. I like your first suggestions, but I don't like the second one.
2. Either you declare the parameter with the same default value twice, which is redundant, or you declare them with different default values, which doesn't make sense.