Inconsistencies between global imports and function local imports
Tyro[a.c.edwards]
nospam at home.com
Tue Jul 12 19:56:10 PDT 2011
Methinks function local imports (introduced in 2.054) is a great idea,
however if it is to be allowed, I believe it should provide all the
functionality of global imports: which it currently does not.
import std.stdio;
import std.string;
import std.conv;
// Note: all of these import formats work if imported here but only
// the first work if imported locally to the function.
//import std.utf;
//import std.utf: toUTF16z;
//import std.utf: wcp = toUTF16z;
void main()
{
auto s = "漢字を書くのはどうかな~?";
auto s1 = genText(s);
writeln(to!string(typeid(s1)));
}
auto genText(string t)
{
import std.utf; // This works
//import std.utf: toUTF16z; // This doesn't
//import std.utf: wcp = toUTF16z; // Neither does this
version(Unicode)
{
// Note: Everything here works with global import
// but only the first line works with function local imports
return toUTF16z(t); // This works
//return t.toUTF16z; // This doesn't
//return wcp(t); // Neither does this
//return t.wcp; // Or this
}
else
{
return t.toStringz;
}
}
[OT - toUTFz]
Wasn't there discussion about adding toUTFz to the std.utf? For some
reason I thought that was forthcoming in 2.054... whatever happened there?
More information about the Digitalmars-d
mailing list