C++自动功能返回?

C++ auto function return?

本文关键字:返回 功能 C++      更新时间:2023-10-16

最近我看到一些代码的函数标记为:

auto Function(...) -> BOOL

仅使用之间是否有一些区别

BOOL Function(...)

第一个对我来说看起来更好,也许我只是很奇怪,所以它只是视觉上的,还是它有一些其他的好处?

仅使用 [...] 之间有什么区别吗

否 - 在您的特定示例中,它们是等效的。


它只是视觉上的,还是有一些其他的好处?

尾随返回类型有几个好处:

  • 以后更容易切换到自动退货型扣款(只需删除->后的所有内容(

  • 可以使用参数作为返回类型的一部分

  • 可以访问类C类型别名,而无需说C::

在您的特定示例中,这些不适用。

语句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;
}