2012-12-23 7 views
25

以下のメンバ関数プロトタイプをC++ 11でどのように解釈する必要がありますか?'auto a_class :: f(...) - > T const'は文法上あいまいですか?

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

私が私ができる知っているクラスCのconstメンバ関数、または型T

のconstの値を返す非constメンバ関数可能性がどちらかと私に思われますただしかし、私は時間と一致するようにしたい

T const f(...); 

または

T f(...) const; 

としての機能を書きます私は関数を宣言しているので、新しいC++ 11 auto f(...) -> RetTypeをどこでも使用することに決めました。

答えて

29

cv-と非スタティックメンバー関数のref修飾子の後には、末尾戻りタイプがとなります。これは、質問の例がT const f(...);と同じであることを意味します。

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

関数定義で宣言は

D1パラメータ宣言節CV-修飾子-配列 OPT REF-修飾子 OPT形を有するもの例外仕様 opt属性指定子seq opt末尾r constメンバ関数を宣言するには

オプトETURN型、あなたはauto f(...) const -> T const;を記述します。

+1

+1(あなたのように):-) –

+0

@KerrekSB回答を求める人の名前を隠しておけば、投票パターンがどのように変わるのだろうか。 –

関連する問題