How to check if aggregate member is static templated method?

drug drug2004 at bk.ru
Thu Feb 15 19:11:01 UTC 2018


15.02.2018 18:49, RazvanN пишет:
> 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
Thank you for answer!


More information about the Digitalmars-d-learn mailing list