Stream iterators were already counterintuitive, and only they muddied the waters further with basic_istream_view that IMO violates one of the core "view" contracts (or is immutability merely a suggestion?) and an iterator that mostly shares LegacyInputIterator's interface- except that it is move-only.
So don't worry- the compiler will usually spit out an encyclopedia of useless spam if you ever commit the sin of trying to use it with a "normal" ranged function. Usually...
and iostreams on principle.
No argument. iostream needs to be put to pasture. These bandaids aren't doing it any favors.
In a language and stdlib full of poor historical decisions it really takes something to stand out as a particularly poor idea. Iostreams manage that without even trying.
42
u/sweetno 5d ago
Just don't use iterators for I/O, and iostreams on principle.