Is it bad to make a reference parameter optional by giving it a default value? Like here:
int Parse(std::string filename, std::string& error = (std::string)"");
Here, the caller of the function may pass an optional std::string that will be filled with an error message if there is one. Is this considered "ok", both as far as being safe, good code and having good style?