[Bug libstdc++/28278] formatted I/O and calliing width(0)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28278 Michael mikeus at hotmail dot ru changed: What|Removed |Added CC||mikeus at hotmail dot ru --- Comment #1 from Michael mikeus at hotmail dot ru 2010-12-27 11:25:51 UTC --- Can anybody fix this bug? --- code: --- #includeiostream using namespace std; int main() { cout.setf(ios_base::fixed); cout.precision(3); cout.width(20); cout.fill('#'); cout (double)1.123456789 endl; cout (double)0.123456789 endl; cout (double)10.123456789 endl; } - --- output: --- ###1.123 0.123 10.123 --- --- expected: --- ###1.123 ###0.123 ##10.123 - It's just sad... :^(((
[Bug libstdc++/28278] formatted I/O and calliing width(0)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28278 --- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2010-12-27 12:12:13 UTC --- The snippet you posted has nothing to do with the issue discussed here, which is about *when exactly* calling width(0) toward the end of the insertion operation (there are minor inconsistencies in the Standard detectable when the insertion proper throws). But in any case, per the letter of both C++03 and C++0x , during the arithmetic insertion at some point width(0) has to be called, normally by the num_put facet in Stage 3. Thus the behavior we are implementing vs your snippet is already Ok, no bug to fix (if you want a practical check, Sun Studio behaves the same).
[Bug libstdc++/28278] formatted I/O and calliing width(0)
-- pcarlini at suse dot de changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2006-10-08 01:17:34 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28278