I don't know how to explain it but sometimes I see functions that retern iterators (algorithms and the like), return input streams, etc. Sometimes I see the functions called without the return values being used or assigned. For example, a call to a function that returns a reference to a input stream like

Code:
istream &read_file(...) {
...
}
being called
Code:
read_file(...)
without it's istream being used for anything.



or
Code:
iterator transform( iterator start, iterator end, iterator result, UnaryFunction f );
being calle without it's return iterator being used.

I'm sure there's a logical reason for doing so that I haven't thought of, but they otherwise return void?