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

Reply via email to