Opened 10 years ago
Closed 10 years ago
#8369 closed Tasks (fixed)
Do not compile even trivial UTF16 and UTF32 tests with libc++
| Reported by: | Antony Polukhin | Owned by: | Antony Polukhin |
|---|---|---|---|
| Milestone: | Boost 1.54.0 | Component: | lexical_cast |
| Version: | Boost 1.52.0 | Severity: | Cosmetic |
| Keywords: | char16_t char32_t unicode utf16 utf32 libc++ clang | Cc: |
Description
In libc++ there are no specializations of std::numpunct<char16_t> and std::numpunct<char32_t> templates. So no test shall be run with char16_t and char32_t types on libc++.
Change History (4)
comment:1 by , 10 years ago
comment:3 by , 10 years ago
Replying to marshall:
Additional information:
The C++ standard (I looked at n3216) specifies (in 22.3.1.1.1) that
numpunct<char>andnumpunct<wchar_t>are required, and does not mentionnumpunct<char16_t>ornumpunct<char32_t>at all.
Yes, they are not required, which makes a lot of troubles when std::basic_istream and std::basic_ostream classes are used with those character types as template parameters (users miss this functionality, see 1, 2).
gcc (I checked version 4.8) provides a completely templated implementation of
std::numpunct, so it supports specializing on any character type. libc++ provides two implementations: one forcharand the other forwchar_t.
GCC-4.7 was also providing a fully templated version. Unfortunately, some support from glibc was required, so usage of std::numpunct<char16_t> was leading to segmentation faults (though have not checked it for a year, may be things changed).
comment:4 by , 10 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |

Additional information:
The C++ standard (I looked at n3216) specifies (in 22.3.1.1.1) that
numpunct<char>andnumpunct<wchar_t>are required, and does not mentionnumpunct<char16_t>ornumpunct<char32_t>at all.gcc (I checked version 4.8) provides a completely templated implementation of
std::numpunct, so it supports specializing on any character type. libc++ provides two implementations: one forcharand the other forwchar_t.