Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Checked!(Checked!(int, ProperCompare), WithNaN)
Лучше позволить Checked принимать произвольное число аргументов, тогда можно писать просто:
Checked!(int, ProperCompare, WithNaN)Как то мне показалось, что в более молодых языках типа rust, swift, kotlin это все элегантнее выглядит.
ref Checked opUnary(string op)() return
if (op == "++" || op == "--")
{
static if (hasMember!(Hook, "hookOpUnary"))
hook.hookOpUnary!op(payload);
else
static if (hasMember!(Hook, "onOverflow"))
{
static if (op == "++")
{
if (payload == max.payload)
payload = hook.onOverflow!"++"(payload);
else
++payload;
} else
{
if (payload == min.payload)
payload = hook.onOverflow!"--"(payload);
else
--payload;
}
} else
mixin(op ~ "payload;");
return this;
}
Design by Introspection