2012-12-23 53 views
25

下面的成員函數原型應該如何在C++ 11中解釋?是否在語法中'auto a_class :: f(...) - > T const'含糊不清?

class C { 
public: 
    auto f(...) -> T const; 
} 

這似乎對我來說,這既可以是C類的const成員函數,或者是返回類型T的常量的值非const成員函數

我知道我可以只寫功能

T const f(...); 

T f(...) const; 

不過,我想用H一致我聲明函數,所以我決定在任何地方都使用新的C++ 11 auto f(...) -> RetType

回答

29

後續返回類型非靜態成員函數的cv-和ref-qualifiers。這意味着問題中的示例與T const f(...);相同。

§8.4.1 [dcl.fct.def.general] p2

在一個函數的定義的說明符應具有的形式

D1參數聲明子句CV限定符SEQ 選擇 REF-限定符選擇例外規範 opt屬性說明符seq opt trailing-r E打開型選擇

要聲明一個const成員函數,你會寫auto f(...) const -> T const;

+1

+1(就像你需要它):-) –

+0

@KerrekSB我不知道投票模式會如何改變,如果人們詢問以及回答的名字是隱藏的。 –

相關問題