stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Brown (JIRA)" <j...@apache.org>
Subject [jira] Created: (STDCXX-412) num_get fails to parse currency in international format
Date Sat, 12 May 2007 22:14:16 GMT
num_get fails to parse currency in international format
-------------------------------------------------------

                 Key: STDCXX-412
                 URL: https://issues.apache.org/jira/browse/STDCXX-412
             Project: C++ Standard Library
          Issue Type: Bug
          Components: 22. Localization
    Affects Versions: 4.1.3
         Environment: gcc 4.1.1 on Linux
            Reporter: Mark Brown


The example program money_get fails when extractinng monetary values in international format
such as "USD 1234" probably because of a bug in the library. From http://mail-archives.apache.org/mod_mbox/incubator-stdcxx-dev/200705.mbox/%3c46461EFE.20506@roguewave.com%3e:

-----Original Message-----
From: sebor@roguewave.com
Sent: Sat, 12 May 2007 14:09:34 -0600
To: stdcxx-dev@incubator.apache.org
Subject: Re: svn commit: r537492 - /incubator/stdcxx/trunk/doc/stdlibref/money-get.html

Mark Brown wrote:
> Martin,
> 
> Thanks for fixing it! I have a question about the new code: Could you show an example
of an international monetary string that would be correctly parsed by the facet? I tried a
few but none of them could be parsed. For instance, "USD 1234" gives this output:
> USD 1234 --> "" --> 0
> The same happens with g++ and STLport so I suspect I must be doing something wrong. Removing
the space between the currency symbol and the number didn't make a difference.

Hmm, I guess I should have tested the internationalized behavior before
I put it in. I think the code is correct as is and your input should be
correctly parsed by the facet (and produce 1234 on output). I'm not sure
what's going on. Stepping through the code it looks like the money_get
facet ends up retrieving the wrong specialization of moneypunct, i.e.,
moneypunct<char, false> when it needs moneypunct<char, true>. What's
puzzling is that both libstdc++ and STLport behave the same. It seems
like too much of a coincidence for all three implementations to suffer
from the same bug.

In any event, thanks for bringing it to our attention! Can you open an
issue for this as well so we don't forget to investigate it in case I
don't get around to it soon?

Thanks
Martin


-- 
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