ネタ元 → Optionalが一晩でやってくれました。
省略できることのメリットねぇ...
[1] void print();
[2] void print(ostream& target); // targetにprintせよ。
さて、[1]はどこにprintするんだろう。シグニチャからは何の情報も得られません。
[1+2] void print(ostream& target = cout);
これならば「targetにprintせよ、省略すればcoutに」ってことが明確じゃないですか。
省略時の値がシグニチャから判断できます。
[1'] void printToStandard()
ってやればいいけど、そーするくらいなら[2]にcoutを食わせたほが直感的よねー