Trass3r schrieb:
enum members = __traits(allMembers, Class);
foreach (i; Sequence!(members.length))
{
static if (isFunction!(Class, members[i]))
{
foreach (j; __traits(getVirtualFunctions, Class,
members[i]))
writefln(members[i], ": ", typeid(typeof(j)));
}
}
}
Yeah extreeemely buggy. dmd also crashes if that enum members is changed
to const members or invariant members.
Ok, narrowed that down to:
template Sequence(size_t count, size_t index = 0)
{
static if (index < count)
alias Tuple!(index, Sequence!(count, index + 1)) Sequence;
}
void main()
{
const members = ["foo", "bar"];
foreach (i; Sequence!(members.length))
{
writefln(members[i]);
}
}
Also crashes. Changing to auto or even enum (i mean enum is also
constant, so ???)
yields:
Error: variable main2.main.i voids have no value