В D компилятор может определить тип возвращаемого значения.Поэтому нет необходимости иметь синтаксис -> V
.
auto func(T, U)(T lhs, U rhs) { return lhs + rhs; }
или если вы хотите быть более конкретным (но лучше, чтобы компилятор определил тип с помощью auto
!)
typeof(T.init + U.init) func(T, U)(T lhs, U rhs) { return lhs + rhs; }
Как и C ++, вы не можете использовать typeof(lhs + rhs)
в этом месте.