Variadic grouping
bearophile
bearophileHUGS at lycos.com
Mon Jul 29 08:24:32 PDT 2013
monarch_dodra:
> Select!(cond, 1, 2);// This doesn't compile
Time ago I asked for an improvement of Select:
https://github.com/D-Programming-Language/phobos/pull/1235
Maybe there is a way to allow that too:
template Select(bool condition, T...) if (T.length == 2) {
static if (condition)
enum Select = T[0];
else
enum Select = T[1];
}
void main() {
enum x = Select!(true, 10, 20);// error
static assert(x == 10);
int a = 1;
int b = 2;
alias y = Select!(true, a, b);
assert(y == 1);
alias T = Select!(true, int, long);
static assert(is(T == int));
}
How do you tell apart values from not values? :-)
Bye,
bearophile
More information about the Digitalmars-d
mailing list