How to check if aggregate member is static templated method?

RazvanN razvan.nitu1305 at gmail.com
Thu Feb 15 15:49:47 UTC 2018


On Thursday, 15 February 2018 at 13:51:41 UTC, drug wrote:
> 15.02.2018 16:50, drug пишет:
>> https://run.dlang.io/is/zHT2XZ
> I can check againts if member is either static function or 
> template. But I failed to check if it both static and templated.

The best I could come up with is:

struct Foo
{
     static staticMethod()
     {
     }

     static templatedStaticMethod(T)(T t)
     {
     }
}

void main()
{
	static if(__traits(isTemplate, Foo.templatedStaticMethod) &&
                   __traits(isStaticFunction, 
Foo.templatedStaticMethod!int))
         {
              writeln("win");
         }
}

It seems like a templated method can be queried if it is static 
only after it's instantiation. Hope this helps.

Cheers,
RazvanN


More information about the Digitalmars-d-learn mailing list