stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-571) 22.locale.numpunct.mt fails unexpectedly because of
Date Thu, 27 Sep 2007 04:51:50 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12530628
] 

Martin Sebor commented on STDCXX-571:
-------------------------------------

Thanks, Travis. It looks like you attached the modified file instead of a patch. Also, your
Change Log doesn't mention the new command line options. Could you please attach a patch instead
and add a note about the new options to the Change Log?

Btw., is the rest of the Summary supposed to be left as an exercise for the reader or are
you still wordsmithing? ;-)

> 22.locale.numpunct.mt fails unexpectedly because of 
> ----------------------------------------------------
>
>                 Key: STDCXX-571
>                 URL: https://issues.apache.org/jira/browse/STDCXX-571
>             Project: C++ Standard Library
>          Issue Type: Improvement
>          Components: Tests
>    Affects Versions: 4.2
>            Reporter: Travis Vitek
>            Priority: Minor
>             Fix For: 4.2.1
>
>         Attachments: 22.locale.numpunct.mt.cpp
>
>
> The current numpunct.mt test fails on at least one platform because the initialization
code and the test code use two different methods for retrieving the numpunct data. The run_test
function uses std::localeconv(), and thread_func uses the C++ locale numpunct facet. In most
situations this isn't a problem.
> Unfortunately, due to incompatibilities between the C and C++ locale details, the thousands
seperator is different with the "C" locale. For C++ it is ',' and for C it is the empty string.
Here is a quick test to show the problem that the test sees.
> #include <clocale>
> #include <locale>
> int main()
> {
>     if (!std::setlocale (LC_ALL, "C"))
>         return 1;
>     const std::lconv* const pconv = std::localeconv ();
>     // test against the specialization directly
>     const std::numpunct<char> np(0);
>     assert (*pconv->decimal_point == np.decimal_point ());
>     assert (*pconv->thousands_sep == np.thousands_sep ());
>     return 0;
> }
> The test should be enhanced to use the C++ locale for both run_test and thread_func.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message