Boost logo

Boost :

From: eg (egoots_at_[hidden])
Date: 2007-07-03 12:48:56


Ulrich Eckhardt wrote:

> Too complicated still (obviously), and the not-checking/double-computation
> of 'done' still applies. ;)
>
> I'd suggest this version:
>
> while(true) {
> // try to read a chunk of data
> streamsize amt = iostreams::read(...);
> if(amt==-1)
> break;
> // handle data
> std::copy(...);
> total += amt;
> }
>
> ...which also removes the unnecessary bool 'done'.
>

Please note that there are two overloads of copy_impl() which contain
the original while logic. The one reported has the bug, while the other
one (line 102- line 122) does not.

If you are going to refactor this function, then the other one should be
done the same way for consistency.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk