On Thu, 16 Nov 2017 10:39:02 +0100 Paolo Carlini <paolo.carl...@oracle.com> wrote:
> Hi, > > On 16/11/2017 06:31, Petr Ovtchenkov wrote: > > Is we really worry about frozen sizeof of instantiated template? > Yes we do. See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html > under "Prohibited Changes", point 8. > > Of course removing the buffering has performance implications too - > that's why it's there in the first place! "buffering" here is a secondary buffering (after streambuf). No relation to performance, but place for incoherence with state of attached streambuf. Of cause, I can spend time to measure the difference. The main point of this patch series is avoidance of lost link between streambuf and istream_iterator when istream_iterator see eof. Implementations that forget about attached streambuf after istream_iterator see eof (or lost synchronization with attached streambuf) violate principles of C++ objects life cycle. From practical point of view, such implementation block usage of istream_iterator for sockets, ttys, etc. --- only non-modified files remains in scope of application. > - which I remember we > investigated a bit again in the past when somebody reported that a few > implementations had it other did not. But I can't say to have followed > all the (recently uncovered) conformance implications, it could well be > that we cannot be 100% conforming to the letter of the current standard > while taking advantage of a buffering mechanism. Jonathan will provide > feedback. > > Paolo. -- - ptr