6

次の例を検討してください。

int main()
{
    int a = 100;
    std::cout<<[=,&a](int a,int b){return a+b;}(99,1);
    return 0;
}

出力は101私の期待の代わりです100

[&a,=]エラーになるので指定できません。

名前の非表示を回避してパラメーターを参照するにはどうすればよいですか。名前を変更することがオプションであることは知っていますが、興味があります。標準への参照も役立ちます

編集:私はgcc 4.7.1を使用しています

編集:

これは、デモを示すアイデアリンクです。私はそこにC ++ 4.7.2コンパイラを使用し
ました

4

3 に答える 3

3

パラメーターには名前を付けることができるスコープがないため、スコープ解決演算子を使用して曖昧さを解消しthisたり、その他のそのような手段を使用したりすることはできません。したがって、このシナリオを希望どおりに明確にすることは不可能です。変数に恐ろしく衝突する名前を付けないでください。

于 2013-05-28T17:50:20.323 に答える