I come across this output param convention, which favours pointers than references.
"Within function parameter lists all references must be const:
void Foo(const string &in, string *out);
In fact it is a very strong convention in Google code that input arguments are values or const references while output arguments are pointers. Input parameters may be const pointers, but we never allow non-const reference parameters except when required by convention, e.g., swap()."
That seems somewhat different to the accepted answer to this question, which says references should be used instead, unless the function involves some pointer arithmetic.
So I wonder if this input param is const reference, output param is pointer
is just a matter of google-style, or it is a more generally accepted practice (to avoid non-const reference parameters).