------- Comment #4 from sebor at roguewave dot com  2006-02-13 18:12 -------
(In reply to comment #3)
[...]
> keeping get area and put area separate as much as possible (consistently with
> filebuf, by the way): this implies not only that egptr() is not updated to
> "match" epptr() upon overflow, but also that, really, doesn't make much sense
> talking about it during output. In fact, when input will start, and epptr()
> will be finally updated to match reality (i.e., the length of the internal
> string) in underflow, almost certainly will not match epptr() anyway.

Yes. But that doesn't conform to the requirement in 27.7.1.3, p8:

  ...If (mode & ios_base::in) != 0, the function alters the read end pointer
  egptr() to point just past the new write position (as does the write end
  pointer epptr()).

I'm not sure it makes sense yet, but it's there nonetheless. DR 169 doesn't
lift the requirement, it just allows overflow() to make more than one write
position available. Maybe we need a new issue to permit the behavior
implemented by libstdc++.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26250

Reply via email to