Opened 12 years ago
Closed 12 years ago
#5087 closed Patches (fixed)
test_utf8_codecvt.cpp.patch fixing comparison with wrong type
| Reported by: | Owned by: | Robert Ramey | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | serialization |
| Version: | Boost 1.45.0 | Severity: | Problem |
| Keywords: | Cc: | ccambly@… |
Description
Comparison of WEOF against wchar_t value is non-portable.
Attachments (1)
Change History (5)
by , 12 years ago
| Attachment: | test_utf8_codecvt.cpp.patch added |
|---|
comment:1 by , 12 years ago
hmmm - could you cite some reference to indicate what wint_t would be preferred to wchar_t? I've never heard of wint_t - not that that means anything. Something makes me think this would be dependent on the standard library or compiler used.
Robert Ramey
comment:2 by , 12 years ago
The type of WEOF according to C99 is wint_t.
wint_t is the int_type for char_traits<wchar_t> as specified by C++03.
As such, it is the return type for basic_istream<wchar_t>::get().
As per C99, wint_t is required to be able to hold an additional value (WEOF) aside from the ones that wchar_t are required to. It follows that WEOF may not be representable in a wchar_t.
A draft copy of C1x is available here: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1494.pdf
comment:3 by , 12 years ago
OK - you've convinced me - good job.
I'll role in this change. It won't make for 1.46 though - thanks again.
Robert Ramey
comment:4 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |

patch libs/serialization/test/test_utf8_codecvt.cpp to avoid WEOF comparison with wchar_t