floatfield == ios_base::fixed | ios_base::scientific && !uppercase (%a)
floatfield == ios_base::fixed | ios_base::scientific (%A)
These expressions are supposed to mean:
floatfield == (ios_base::fixed | ios_base::scientific) && !uppercase
floatfield == (ios_base::fixed | ios_base::scientific)
but technically parsed as:
((floatfield == ios_base::fixed) | ios_base::scientific) && (!uppercase)
((floatfield == ios_base::fixed) | ios_base::scientific)
and should be corrected with additional parentheses, as shown above.
I couldn't find this issue in the C++ Standard Library Issues List
(Revision R65).
--
Seungbeom Kim
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use mailto:std...@netlab.cs.rpi.edu]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.comeaucomputing.com/csc/faq.html ]
This is now LWG issue 1152:
http://home.roadrunner.com/~hinnant/issue_review/lwg-active.html#1152
-Howard
--