Hallo,
dein Pseudocode funktioniert nicht, weil die C++-Streams nicht kopierbar sind. Du musst also entweder eine Referenz oder einen Zeiger auf einen Stream übergeben.
std::ostream* ptr = &cout;
oder
std::ostream& ref = cout;
Wichtig ist, dass du die Referenz nicht mit der Adresse initialisierst sondern direkt mit dem Objekt. Wann solltest du welche Variante wählen? Zu bevorzugen ist in der Regel die Referenz, es sei denn du willst explizit 0 als möglichen Wert erlauben, dann brauchst du den Zeiger.
void dump(std::ostream&, int value) {
ostream << value;
}
dump(std::cout, 5);
oder
ofstream out("test.txt");
dump(out, 5);
Gruss,
OhneName