最近我看到一些代码标记为这样的代码:
auto Function(...) -> BOOL
使用
之间是否存在一些差异BOOL Function(...)
第一个对我来说看起来更好,也许我只是很奇怪,它只是视觉,还是有其他一些好处?
答案 0 :(得分:5)
仅使用[...]
之间是否存在一些差异
不 - 在您的特定示例中,它们是等效的。
它只是视觉效果,还是有其他一些好处?
追踪回报类型有一些好处:
以后更容易切换到自动退货类型扣除(只需删除->
之后的所有内容)
可以将参数用作返回类型的一部分
可以访问类C
类型别名而无需说C::
在您的特定示例中,这些不适用。
答案 1 :(得分:3)
当您需要在返回类型
之前对参数进行类型推导时,使用语句auto Function(...) -> some_type
template<class T>
decltype(a*b) add(T a, T b){
return a + b;
}
但这不会起作用所以你需要:
template<class T>
auto add(T a, T b) -> decltype(a + b) {
return a + b;
}