随着C++ 14中auto
返回类型的引入,是否确实存在需要尾随返回类型的情况,或者在C++ 14和17中它已经完全过时了?
最佳答案
考虑...
auto f(int x)
{
if (x == 2)
return 3;
return 2.1;
}
...这具有不明确的返回类型-
int
或double
。显式的返回类型(无论是带前缀的还是结尾的)都可以消除歧义,并将return
参数强制转换为返回类型。如果要在某些参数上使用
decltype
,sizeof
等,则尾随返回类型也特别有用:auto f(int x) -> decltype(g(x))
{
if (x == 2)
return g(x);
return 2;
}
关于c++ - C++ 14中的尾随返回类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39951084/