On Tuesday, 1 April 2014 at 18:35:50 UTC, Walter Bright wrote:
immutable bool[256] tab2;
static this()
{
for (size_t u = 0; u < 0x100; ++u)
{
tab2[u] = isIdentifierChar0(cast(ubyte)u);
}
}
Table lookups are awesome.
While tab2 there lends itself to being populated in a static
this() it would really lower the bar if we could define static
immutable AA literals at compile-time. Or at least CTFE-fill
them. Having to rely on static this() for such is unfortunate and
hacky.
Relevant is
http://forum.dlang.org/thread/oxnwtojtdymopgvan...@forum.dlang.org
in which I get a speed increase of >3.5x by doing string-to-enum
translation/mapping using someEnum[string] AA lookups, instead of
using someString.to!someEnum.
(Given CtAAs, std.conv.to could then generate such for various
translations where cheap -- assuming we still like AAs?)