Hacker News new | ask | show | jobs
by fbkr 1659 days ago
Disclaimer: I dislike iostreams and in our environment <iostream> is completely banned.

However, in C++98, how else would you handle when you have an arbitrary number of things to print in a type-safe way? e.g.

    cout << myInt << ": " << something << " - " << otherthing << " - " << etc << '\n';
printf is not type-safe, nor supports user defined types. I'd rather not write 8 lines of functions calls for the same thing either.

I think it made some sense C++98, though it is an awful API in 2021.

2 comments

std::cout::write(myInt,": ",something," - ",otherthing," - ",etc,'\n');

Possible with preprocessor.

I'm not sure how that could be done before variadic templates were introduced in C++11.
I doubt that's possible with the C++98 preprocessor.
> However, in C++98, how else would you handle when you have an arbitrary number of things to print in a type-safe way? e.g.

If I were the one designing the language, I'd have simply fixed printf to be type-safe. (e.g. via adding macro support a la Lisp)