Thread overview | ||||||
---|---|---|---|---|---|---|
|
August 13, 2016 if static member then call | ||||
---|---|---|---|---|
| ||||
auto ref foo(T, Args...)(args) { static if (hasStaticMember!(T, "foo")) return T.foo!(T)(args); } Basically I want to forward the *static* call to T if possible(if foo exists in T). The main problem is actually calling T.foo as the syntax here doesn't work. I also need to be able to check to see if a method is static, since I have no object. |
August 13, 2016 Re: if static member then call | ||||
---|---|---|---|---|
| ||||
Posted in reply to Engine Machine | On Saturday, 13 August 2016 at 18:34:43 UTC, Engine Machine wrote:
> auto ref foo(T, Args...)(args)
> {
> static if (hasStaticMember!(T, "foo"))
> return T.foo!(T)(args);
> }
>
> Basically I want to forward the *static* call to T if possible(if foo exists in T). The main problem is actually calling T.foo as the syntax here doesn't work. I also need to be able to check to see if a method is static, since I have no object.
you're probably gonna want something like, if i understand your question correctly:
return __traits(getMember, T, "foo")(args);
|
August 13, 2016 Re: if static member then call | ||||
---|---|---|---|---|
| ||||
Posted in reply to Engine Machine | On Saturday, 13 August 2016 at 18:34:43 UTC, Engine Machine wrote:
> static if (hasStaticMember!(T, "foo"))
Here I suspect you're looking for this:
__traits(isStaticFunction, __traits(getMember, T, "foo"))
|
August 13, 2016 Re: if static member then call | ||||
---|---|---|---|---|
| ||||
Posted in reply to Cauterite | On Saturday, 13 August 2016 at 18:42:50 UTC, Cauterite wrote:
> On Saturday, 13 August 2016 at 18:34:43 UTC, Engine Machine wrote:
>> static if (hasStaticMember!(T, "foo"))
>
> Here I suspect you're looking for this:
> __traits(isStaticFunction, __traits(getMember, T, "foo"))
Thanks.
It needs to be something like
static if (hasMemeber!(T, "foo") && __traits(isStaticFunction, __traits(getMember, T, "foo")))
|
Copyright © 1999-2021 by the D Language Foundation