Boost logo

Boost :

Subject: Re: [boost] [convert] coversion between strings with differentlocales
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2009-07-09 12:58:46


Hi,
----- Original Message -----
From: "Vladimir Batov" <batov_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, July 09, 2009 10:13 AM
Subject: Re: [boost] [convert] coversion between strings with differentlocales

>
>> From: "vicente.botet" <vicente.botet_at_[hidden]>
>> I wanted to see how we can convert a double from a locale to another
>> locale?
>> ...
>
> OTOH, I'd say
>
> string en_double = ...;
> double d = convert<double>::from(en_str)(locale_=en_locale);
> string fr_double = convert<string>::from(d)(locale_=fr_locale);
>
> If you want to stitch it all together, it becomes a scary
>
> string fr_double =
> convert<string>::from(
> convert<double>::from(en_str)(locale_=en_locale).value()
> )(locale_=fr_locale);
>
> or as scary
>
> string fr_double =
> convert<string>::from<string>(
> convert<double>::from(en_str)(locale_=en_locale)
> )(locale_=fr_locale);

you mean

string fr_double =
    convert<string>::from<***double***>(
        convert<double>::from(en_str)(locale_=en_locale)
    )(locale_=fr_locale);
 
> If needed, I'd probably wrap it up in a function like
>
> template<class T>
> T convert(T const&, locale const&, locale const&);

There is something missing in this function. The intermediary class.

Anyway I don't think we need a specific function for this specific case. I would prefer to qualify the string class be converted with formatting specifics.
 
string fr_double = convert_to_using<fr_locale<string>, double>::from(en_locale(en_str));

which can be readen as convert from a string representing a double with the english locale to a string with a french locale.

Best,
Vicente
 


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk