2
T maybe(alias nullCheck, T)(T expr, T def)
{
if (nullCheck(expr))
{
return def;
}
else
{
return expr;
}
}
auto tokens = chomp(readln())
.toLower()
.split()
.maybe!(a => a.empty)([""])
如果排列的模板參數爲maybe
,則別名首先出現,編譯器能夠正確推斷參數類型。但是,當模板參數被切換使得T首先出現時,它不能推斷出它們,並且不會編譯。爲什麼是這樣?D類型推斷取決於模板參數的順序
tl; dr;顯式提供的參數(模板或其他)被分配給完整參數列表的前綴。 – BCS