d的is与中
int func();
static if (is(typeof(func) R == return))
pragma(msg, R);
std.traits.ReturnType实现为:
template ReturnType(alias func)
if (isCallable!func)
{
static if (is(FunctionTypeOf!func R == return))
alias ReturnType = R;
else
static assert(0, "无中型");
}
ReturnType比原始IsExpression干得稍微多一点,因为它可确定:
struct G
{
int opCall (int i) { return 1;}
}
浙公网安备 33010602011771号