Promoted

Get the type that a scalar type T will promote to in multi-term arithmetic expressions.

template Promoted (
T
) if (
isScalarType!T
) {}

Examples

ubyte a = 3, b = 5;
static assert(is(typeof(a * b) == Promoted!ubyte));
static assert(is(Promoted!ubyte == int));

static assert(is(Promoted!(shared(bool)) == shared(int)));
static assert(is(Promoted!(const(int)) == const(int)));
static assert(is(Promoted!double == double));

Meta