Jack Applegame:

Seems like "is" expression doesn't support type tuples:

pragma(msg, is(short : int));                 // true

enum Test(ARGS...) = is(ARGS[0..2] : ARGS[2..4]);
pragma(msg, is(Test!(int, int, int, int)));   // false
pragma(msg, Test!(int, short, int, int));     // false

Is it by design, or just not implemented?

It's by design, perhaps because Walter didn't think of this case, or probably for compiler simplicity. But it should be not too much hard to implement it your code. Just use two is(), or use recursion (with splitting in two, and not 1 + n-1).

Bye,
bearophile

Reply via email to