digitalmars.D.learn - if static member then call
- Engine Machine (9/9) Aug 13 2016 auto ref foo(T, Args...)(args)
- Cauterite (4/14) Aug 13 2016 you're probably gonna want something like, if i understand your
- Cauterite (3/4) Aug 13 2016 Here I suspect you're looking for this:
- Engine Machine (5/10) Aug 13 2016 Thanks.
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.
Aug 13 2016
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);
Aug 13 2016
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"))
Aug 13 2016
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:Thanks. It needs to be something like static if (hasMemeber!(T, "foo") && __traits(isStaticFunction, __traits(getMember, T, "foo")))static if (hasStaticMember!(T, "foo"))Here I suspect you're looking for this: __traits(isStaticFunction, __traits(getMember, T, "foo"))
Aug 13 2016









Cauterite <cauterite gmail.com> 