Wpadłem na pomysł, co by nie przekazywać do wszystkich metod klasy strumienia wyjściowego,
tylko utworzyć jako atrybut obiekt strumienia, przekazanego w konstruktorze, z którego będą mogły korzystać
te metody (mniej argumentów = większa czytelność).
Poglądowa klasa:
template <typename streamOut>
class CollectionPrinter {
private:
streamOut os_;
public:
CollectionPrinter(streamOut& os)
{
os_ = os;
}
// metody
};
Wywołanie main():
CollectionPrinter<ostream> printer(cout);
Czy da się coś takiego wykonać? Nie ma pomysłu jak to zrobić.