【问题标题】:What does -> mean in c++11 in a function signature? [duplicate]-> 在函数签名中的 c++11 中是什么意思? [复制]
【发布时间】:2018-03-02 14:39:55
【问题描述】:

请注意,这不是 What does -> mean in C++? 的重复项

这个问题是针对 C++11 的;函数可能如下所示:

struct string_accumulator {
}


inline auto collect() -> string_accumulator
{
    return string_accumulator();
}

-> 在这种情况下是什么意思?

【问题讨论】:

  • 我没有写下来,但我认为您的标题可能更具体,例如:“函数声明中的什么(...)?”

标签: c++ c++11


【解决方案1】:

这是一个trailing return type。它可用于显式指定 lambda 表达式 的返回类型或指定依赖于函数参数的返回类型。例子:

[](int) -> float { return 0.f; };

template <typename A, typename B>
auto foo(A a, B b) -> decltype(a + b) { return a + b; } 

【讨论】:

  • 将返回类型放在函数范围内也可能有点用处。喜欢而不是MyNS::MyClass::MyNestedType MyNS::MyClass::f() { return {}; },你可以做auto MyNS::MyClass::f() -&gt; MyNestedType { return {}; }
猜你喜欢
  • 1970-01-01
  • 2011-10-05
  • 2018-07-31
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
相关资源
最近更新 更多