Boost logo

Boost :

From: Martin (adrianm_at_[hidden])
Date: 2004-09-21 06:14:44


> So every library which uses lexical_cast would have to provide the 'imbue'
> and store the locale everywhere? I think per-thread global variable is
> better.

I think you missed my point. All operations that involves string handling
(sorting, parsing etc) need to do that within a certain context which is
called locale. However, all string handling desen't necessary work with the
same locale. That is why the STL streams, string_algo etc all allow you to
specify the locale to use per instance or function.

If you introduce another global (or per-thread global) variable it will not
solve anything since lexical_cast might be used in different libraries where I
want to use different locales.

A (thread-) global variable calld program_options_locale could work but it
would be just as easy to make it a class-member.

You don't allow differnt locales in your library and neither does
lecxical_cast so they work nice together. But if you want to support different
locales in your library you can't use lexical_cast and that is my whole point
with this discussion.

Lexical_cast is supposed to make a common task easy and reduce the risk of
errors but instead it gives you a false sense of security and motivates others
to also ignore locale support.


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