Ich möchte eine Funktion deklarieren, die standardmäßig auf std::out
schreibt, aber optional auch das Schreiben in einen anderen Ausgabestrom ermöglicht, falls einer vorhanden ist. Zum Beispiel:std :: ostream als optionaler (!) Funktionsparameter
print_function(std::string & str,
std::ostream & out = std::cout,
std::ostream & other = nullptr) // <-- how to make it optional???
{
out << str;
if (other == something) // if optional 'other' argument is provided
{
other << str;
}
}
Einstellung nullprt
offensichtlich nicht funktioniert, aber wie kann dies geschehen?
Related: http://StackOverflow.com/Questions/11826554/Standard-No-Op-Output-Stream – lorro
Es sieht für mich viel natürlicher wäre, zwei Überladungen, eine mit zwei Argumente, und eine mit drei Argumenten. – Hurkyl
@Hurkyl: oder halten Sie den einen mit 2 Argument und übergeben Sie einen "Tee_stream". – Jarod42