5

可能重复:
替代函数语法

在复杂的函数模板中,有时需要 C++11 尾随返回类型语法才能decltype在参数上使用,否则会为时已晚:

template<typename T, typename U>
auto add(const T& a, const U& b) -> decltype(a + b)
{
    return a + b;
}

从现在开始总是使用这种新语法会不会更加一致,即使对于普通函数也是如此?

auto main() -> int;

然后我们只需要处理一种函数语法而不是现代代码中的两种,我们可以弃用旧语法,就像我们弃用隐式 int 或隐式 using 声明一样。

为了使新语法更具吸引力,我们可以auto用一个更好的名称替换:

#define def auto

突然之间main,函数式程序员的签名看起来非常有吸引力:

def main() -> int;

我忽略了什么吗?尾随返回类型语法是否以某种我没有想到的方式较差?

4

0 回答 0