On Thursday, 15 March 2018 at 12:49:22 UTC, jmh530 wrote:
[snip]

It looks like it should expand the alias earlier. No problem with auto foo (T)(S!(1, T) v) {};

Also, this issue also shows up in mir.ndslice.traits. I had to do the equivalent of isV below. It doesn't work to do the alternate version. However, given that you have the traits, then you can use them in a template constraint. So you have to repeat yourself in the trait once, rather than bunches of times in each function that calls them.

enum bool isV(T) = is(T : S!(1, U), U);
enum bool isV_alternate(T) = is(T : V!(U), U);

Reply via email to