Je souhaite déclarer une fonction qui écrit par défaut sur std::out
, mais qui permet également d'écrire dans un autre flux de sortie, le cas échéant. Par exemple:std :: ostream comme paramètre de fonction optionnel (!)
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;
}
}
Réglage nullprt
ne fonctionne évidemment pas, mais comment cela peut-il être fait?
connexes: http://stackoverflow.com/questions/11826554/standard-no-op-output-stream – lorro
Il me semble que ce serait beaucoup plus naturel d'avoir deux, l'une avec des surcharges deux arguments, et un avec trois arguments. – Hurkyl
@Hurkyl: ou en gardant celui avec 2 arguments et en passant un "tee_stream'". – Jarod42