This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of CD1 status.
Section: 31.8.2.2 [stringbuf.cons] Status: CD1 Submitter: Dietmar Kühl Opened: 2000-05-11 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [stringbuf.cons].
View all issues with CD1 status.
Discussion:
In 27.7.1.1 paragraph 4 the results of calling the constructor of
'basic_stringbuf' are said to be str() == str
. This is fine
that far but consider this code:
std::basic_stringbuf<char> sbuf("hello, world", std::ios_base::openmode(0)); std::cout << "'" << sbuf.str() << "'\n";
Paragraph 3 of 27.7.1.1 basically says that in this case neither
the output sequence nor the input sequence is initialized and
paragraph 2 of 27.7.1.2 basically says that str()
either
returns the input or the output sequence. None of them is initialized,
ie. both are empty, in which case the return from str()
is
defined to be basic_string<cT>()
.
However, probably only test cases in some testsuites will detect this "problem"...
Proposed resolution:
Remove 27.7.1.1 paragraph 4.
Rationale:
We could fix 27.7.1.1 paragraph 4, but there would be no point. If we fixed it, it would say just the same thing as text that's already in the standard.