Choosing a pointer rather than a reference for an output parameter should only be if the argument is optional, and the function test for nil value properly. Also clamp is not a good example as it should return by value anyway.