www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - isSame trait and literals

reply Jack Applegame <japplegame gmail.com> writes:
```d
enum isSame1(alias a, alias b) = __traits(isSame, a, b);
enum isSame2(args...)          = __traits(isSame, args[0], 
args[1]);

pragma(msg, isSame1!(1, 1)); //false
pragma(msg, isSame2!(1, 1)); //true

pragma(msg, isSame1!("test", "test")); //false
pragma(msg, isSame2!("test", "test")); //true
```
Looks like a bug.

try yourself: https://run.dlang.io/is/Edlz28
Oct 05 2021
parent reply Basile B. <b2.temp gmx.com> writes:
On Tuesday, 5 October 2021 at 19:28:30 UTC, Jack Applegame wrote:
 ```d
 enum isSame1(alias a, alias b) = __traits(isSame, a, b);
 enum isSame2(args...)          = __traits(isSame, args[0], 
 args[1]);

 pragma(msg, isSame1!(1, 1)); //false
 pragma(msg, isSame2!(1, 1)); //true

 pragma(msg, isSame1!("test", "test")); //false
 pragma(msg, isSame2!("test", "test")); //true
 ```
 Looks like a bug.
Yes, this was discussed two weeks ago and I've filled [this issue](https://issues.dlang.org/show_bug.cgi?id=22269) in consequence. At first glance that would be a problem with AliasTemplateParameter. Phobos `isSame` could be updated to use a TemplateVariadicParameter so that the body could just the __trait result.
Oct 05 2021
parent Jack Applegame <japplegame gmail.com> writes:
On Tuesday, 5 October 2021 at 19:38:15 UTC, Basile B. wrote:
 Yes, this was discussed two weeks ago and I've filled [this 
 issue](https://issues.dlang.org/show_bug.cgi?id=22269) in 
 consequence.
Thanks.
Oct 05 2021