Anyway to compare function aliases? Or any ideas?
aliak
something at something.com
Thu Jul 4 19:33:05 UTC 2019
On Thursday, 4 July 2019 at 15:22:08 UTC, Marco de Wild wrote:
> On Thursday, 4 July 2019 at 15:10:05 UTC, aliak wrote:
>> [...]
>
> I don't know if it will solve your whole problem, but have you
> tried __traits(isSame, W0.fun, fun)?
>
> Reduced example:
>
> struct Foo(alias fun){
> alias bar = fun;
> }
>
> void stuff(alias fun, T)(T t)
> {
> static if(__traits(isSame, fun, T.bar)) {
> pragma(msg, "Yes");
> } else {
> pragma(msg, "No");
> }
> }
>
> void a(){}
> void b(){}
>
> void main()
> {
> stuff!a(Foo!a()); // Yes
> stuff!a(Foo!b()); // No
> }
Of course! That helps a lot yes. Thank you :)
The case in the gist I pasted above works like a charm now.
isSame seems like a decent enough powerhouse to get most of the
practical cases it seems as well.
More information about the Digitalmars-d-learn
mailing list