Boost C++ Libraries: Ticket #8369: Do not compile even trivial UTF16 and UTF32 tests with libc++ https://svn.boost.org/trac10/ticket/8369 <p> In libc++ there are no specializations of <code>std::numpunct&lt;char16_t&gt;</code> and <code>std::numpunct&lt;char32_t&gt;</code> templates. So no test shall be run with <code>char16_t</code> and <code>char32_t</code> types on libc++. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8369 Trac 1.4.3 Marshall Clow Tue, 02 Apr 2013 15:27:47 GMT <link>https://svn.boost.org/trac10/ticket/8369#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8369#comment:1</guid> <description> <p> Additional information: </p> <p> The C++ standard (I looked at n3216) specifies (in 22.3.1.1.1) that <code>numpunct&lt;char&gt;</code> and <code>numpunct&lt;wchar_t&gt;</code> are required, and does not mention <code>numpunct&lt;char16_t&gt;</code> or <code>numpunct&lt;char32_t&gt;</code> at all. </p> <p> gcc (I checked version 4.8) provides a completely templated implementation of <code>std::numpunct</code>, so it supports specializing on any character type. libc++ provides two implementations: one for <code>char</code> and the other for <code>wchar_t</code>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 02 Apr 2013 19:56:52 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8369#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8369#comment:2</guid> <description> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/83717" title="Disable UTF16 and UTF32 tests for libc++ (refs #8369)">[83717]</a>) Disable UTF16 and UTF32 tests for libc++ (refs <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8369" title="#8369: Tasks: Do not compile even trivial UTF16 and UTF32 tests with libc++ (closed: fixed)">#8369</a>) </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Tue, 02 Apr 2013 19:57:38 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8369#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8369#comment:3</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/8369#comment:1" title="Comment 1">marshall</a>: </p> <blockquote class="citation"> <p> Additional information: </p> <p> The C++ standard (I looked at n3216) specifies (in 22.3.1.1.1) that <code>numpunct&lt;char&gt;</code> and <code>numpunct&lt;wchar_t&gt;</code> are required, and does not mention <code>numpunct&lt;char16_t&gt;</code> or <code>numpunct&lt;char32_t&gt;</code> at all. </p> </blockquote> <p> Yes, they are not required, which makes a lot of troubles when <code>std::basic_istream</code> and <code>std::basic_ostream</code> classes are used with those character types as template parameters (users miss this functionality, see <a class="ext-link" href="http://stackoverflow.com/questions/13534639/xcode-4-5-2-libc-stdbad-cast-when-implementing-custom-stringstream"><span class="icon">​</span>1</a>, <a class="ext-link" href="http://stackoverflow.com/questions/12229900/what-to-replace-stdstringstream-and-boostformat-with-for-stdu16string"><span class="icon">​</span>2</a>). </p> <blockquote class="citation"> <p> gcc (I checked version 4.8) provides a completely templated implementation of <code>std::numpunct</code>, so it supports specializing on any character type. libc++ provides two implementations: one for <code>char</code> and the other for <code>wchar_t</code>. </p> </blockquote> <p> GCC-4.7 was also providing a fully templated version. Unfortunately, some support from glibc was required, so usage of std::numpunct&lt;char16_t&gt; was leading to segmentation faults (though have not checked it for a year, may be things changed). </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Antony Polukhin</dc:creator> <pubDate>Thu, 04 Apr 2013 15:47:05 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/8369#comment:4 https://svn.boost.org/trac10/ticket/8369#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/83764" title="Mrege from trunk: * Disable UTF16 and UTF32 tests for libc++ (fixes #8369)">[83764]</a>) Mrege from trunk: </p> <ul><li>Disable UTF16 and UTF32 tests for libc++ (fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8369" title="#8369: Tasks: Do not compile even trivial UTF16 and UTF32 tests with libc++ (closed: fixed)">#8369</a>) </li></ul> Ticket