私は複数の引数を持つdecltype
を読んでいます。他の人によると、すべての型が一貫していることを検証し、そうであれば最後のパラメータを完全に破棄します。2つの引数を持つDecltypeは型を変更します
int i = 7;
decltype(i) var = i;
++var;
cout << i << endl; // prints '7', as I would expect
しかし:しかし、別のパラメータを渡すと、戻り値に影響を与えないように思わ
int i = 7;
decltype(1, i) var = i;
++var;
cout << i << endl; // prints '8' - apparently 'var' is now a reference to 'i'
それはなぜですか?
'他の人によると、すべての型が一貫していることを検証し、そうであればすべてのパラメータを完全に破棄しますが、最後のものは何ですか?私は誰もそれを以前に主張したことはなかった。 – cpplearner
たとえば、私が正しく理解していれば、ここで:http://stackoverflow.com/questions/16044514/what-is-decltype-with-two-arguments?rq=1。コンマで区切られた一対の式は左から右に評価され、左の式は破棄された値式 "、"結果は右のオペランドと同じ値カテゴリになります " – Valentin
Try' decltype((i) ) ' –