Algebraic.this

Construct an algebraic type from its subset.

Examples

alias Float = Variant!(float, double);
alias Int = Variant!(long, int);
alias Number = Variant!(Float.AllowedTypes, Int.AllowedTypes);

Float fp = 3.0;
Number number = fp; // constructor call
assert(number == 3.0);

Int integer = 12L;
number = Number(integer);
assert(number == 12L);

Meta