std.locale
Walter Bright
newshound1 at digitalmars.com
Sun Mar 1 21:39:29 PST 2009
Andrei Alexandrescu wrote:
> Walter Bright wrote:
>> Andrei Alexandrescu wrote:
>>> Walter Bright wrote:
>>>> Andrei Alexandrescu wrote:
>>>>> There will be a global reference to a Locale class, e.g.
>>>>> defaultLocale. By default the reference will be null, implying the
>>>>> C locale should be in effect. Applications can assign to it as they
>>>>> find fit, and also pass around multiple locale variables.
>>>>
>>>> I disagree with being able to assign to the global defaultLocale.
>>>> This is going to cause endless problems. Just one is that any
>>>> function that uses locale can no longer be pure. defaultLocale
>>>> should be immutable.
>>>>
>>>> Any function that is locale aware should be parameterized with a
>>>> locale parameter. (Not only is that better design, it self-documents
>>>> the dependency.)
>>>
>>> I don't understand this. That means there's no more default locale.
>>> Here's what I had in mind:
>>>
>>> class Locale { ... }
>>>
>>> // function parameterized with an optional locale
>>> void foo(Data d, Locale loc = null);
>>>
>>> So there's no more default locale. If you pass in null, that's the
>>> default locale.
>>
>> That's fine, I was thrown off by your reference to a "global reference".
>
> Well I was thinking a global reference might be handy for people who
> e.g. want to set the locale once and then be done with it.
That's what I was objecting to!
> I think only
> a few apps actually manipulate multiple locales simultaneously. Most
> would just want to load the locale present on the user's computer and
> then use it.
User settable global state is eeevil.
More information about the Digitalmars-d
mailing list