This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
The bug here is that we called putback even if the initial __is >> __ch extraction failed and set eofbit, and putback clears the eofbit. I found a number of other problems though, such as not even trying to call putback after failing to find the ',' and ')' characters. I decided to rewrite the function following the proposed resolution for https://wg21.link/lwg2714 which is a much more precise specification for much more desirable semantics. PR libstdc++/59568 * include/std/complex (operator>>): Implement proposed resolution to LWG 2714. Use putback if and only if a character has been successfully extracted but isn't a delimiter. Use ctype::widen and traits::eq when testing if extracted characters match delimiters. * testsuite/26_numerics/complex/dr2714.cc: New test. Tested powerpc64le-linux, committed to trunk. For the release branches I'm considering just fixing the bug that clears eofbit, and not the whole rewrite of the function.
Attachment:
patch.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |