I wish all qualifiers were revisited with an eye for simplification

Nick Treleaven nick at geany.org
Tue Aug 25 15:33:02 UTC 2020


On Monday, 17 August 2020 at 11:23:04 UTC, Andrei Alexandrescu 
wrote:
> On 8/14/20 9:35 PM, Timon Gehr wrote:
>> There is this persistent myth that __traits(compiles, ...) is 
>> the same as is(typeof(...)) this is not the case and IIRC I 
>> have used it to demonstrate that most template constraints in 
>> Phobos don't work correctly.
>
> This is a problem as __traits should be a lower-level, 
> seldom-used resort.

__traits(compiles) is not really a trait. Whether an expression 
is valid or not isn't really metadata of the expression - because 
in e.g. D, an expression must be valid in order to have metadata. 
Traits can be wrapped by templates, this can't. Besides these 
points, it would be nicer syntax to have something like 
__compiles(expr) instead.


More information about the Digitalmars-d mailing list