[Issue 16343] Incorrectly requiring this pointer for a free function
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Nov 19 08:34:22 UTC 2017
https://issues.dlang.org/show_bug.cgi?id=16343
--- Comment #5 from Jonathan M Davis <issues.dlang at jmdavisProg.com> ---
I just hit this issue again - with an alias parameter this time. This code
============
struct S
{
int i;
}
void main()
{
foreach(memberName; __traits(allMembers, S))
{
func!(__traits(getMember, S, memberName))();
}
}
void func(alias member)()
{
auto protection = __traits(getProtection, member);
alias Type = typeof(member);
auto name = __traits(identifier, member);
}
============
gives this error
q.d(10): Error: need 'this' for 'func' of type 'pure nothrow @nogc @safe
void()'
whereas moving the contents of the free function into main works just fine. The
lack of ability to pass the member to a template for introspection makes it a
lot harder to avoid code duplication when writing code that does type
introspection.
--
More information about the Digitalmars-d-bugs
mailing list