On 21.08.2011 2:10, Nick Sabalausky wrote:
From: "Dmitry Olshansky" <[email protected]>
On 20.08.2011 12:39, Rainer Schuetze wrote:
3. I tried to remove some more (currently soft) deprecation messages regarding std.ctype, and it turned out that it was a bit of a hassle to get it to compile because I had to mix both std.ascii and std.uni. This is happening because I'd like to use the isAlpha from std.uni, but there are other functions missing from std.uni (like isDigit, isHexDigit, etc.).

I think this was discussed before, but I'm not sure what the conclusion was. I suggest adding some forwarding aliases to std.uni for function that have identical implementation, and ensure that the compiler does not complain about ambiguities if these are just aliases to the same symbol.

Recalling last discussion on this, the users have to solve this on their own. Be it use unicode everywhere or full std.ascii.xxx/std.uni.xxx or whatever. I ended up using renamed imports.


There's a simple alias trick that works very well for that sort of thing:

------------------------
module m1;
void a() {};
void b() {};
------------------------
module m2;
void b() {};
void c() {};
------------------------
module main;
import m1
import m2;

// Nifty trick: Pull m1's b() into local scope,
// effectively"prioritizing" it.
private alias m1.b b;

void main() {
   b(); // Works: Calls m1.b()
}
------------------------

Nice, I haven't thought of simple alias.
D is such a big handy toolbox, I can't hope to pull out of it a proper screwdriver all the time :)

--
Dmitry Olshansky

_______________________________________________
dmd-beta mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/dmd-beta

Reply via email to