function - D 如何通过返回类型解决这个问题?

标签 function syntax d

C++11 引入了函数声明的新语法,

auto func(T rhs, U lhs) -> V

这是为了解决旧的 C++ 标准中函数模板出现的一些问题。请阅读这篇简短的维基百科文章部分,了解有关该问题的详细信息:
> http://en.wikipedia.org/wiki/C%2B%2B11#Alternative_function_syntax

我的问题是,D也面临着同样的问题吗?如果是这样,它如何解决它(如果有的话)?

最佳答案

在 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)

关于function - D 如何通过返回类型解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8035230/

相关文章:

javascript - 如何使函数响应与其他函数中的其他语句同步

c++ - 函数参数

function - 在lua中调用函数时使用多个括号

d - 在 D 中的输入和输出合约之间传递值

c++ - C++中类的成员函数的内存空间是什么时候分配的?

c++ - 函数作为参数 vs 函数指针作为参数

language-agnostic - switch case 中缺少大括号语法?

java - 在 D 中返回类名的函数

linux - D可以编译成平台独立代码吗?

javascript - 替换函数中的参数不起作用