可能重复:
替代函数语法
在复杂的函数模板中,有时需要 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;
我忽略了什么吗?尾随返回类型语法是否以某种我没有想到的方式较差?