2017-09-21 54 views
-3

注意這不是What does -> mean in C++?的重複什麼 - >在函數簽名中的C++ 11中的含義?

這個問題是特定於C++ 11的;功能可能如下所示:

struct string_accumulator { 
} 


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

在這種情況下,「 - >」的含義是什麼?

+0

我沒有downwote,但我認爲您的標題可能更具體,如:「函數聲明中的內容(...)」? – R2RT

回答

5

這是一個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; } 
+0

將函數的返回類型放在函數的作用域內也是有用的。喜歡而不是'MyNS :: MyClass :: MyNestedType MyNS :: MyClass :: f(){return {}; }',你可以執行'auto MyNS :: MyClass :: f() - > MyNestedType {return {}; }' – aschepler

相關問題