How to check if aggregate member is static templated method?
bauss
jj_1337 at live.dk
Fri Feb 16 11:45:14 UTC 2018
On Thursday, 15 February 2018 at 15:49:47 UTC, RazvanN wrote:
> 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
I would kinda argue that it's a bug, because checking whether a
template function is static can become very complex if the
template also has constraints etc.
More information about the Digitalmars-d-learn
mailing list