ラムダ式がどのように機能するかを学ぶためにラムダ式をいじっていましたが、問題に遭遇しました。私は自分が間違っていることを理解しようとしていますが、そうではないようです。コンパイラは、次の単純な例を受け入れることを拒否します。
int a = 2;
std::vector<int> vv(10);
vv[2]=2;
std::count( vv.begin(), vv.end(), [&a](int z) { return a == z; } );
エラーが発生します
Error 1 error C2678: binary '==' : no operator found
which takes a left-hand operand of type 'int' (or there is no
acceptable conversion) e:\program files (x86)\microsoft visual studio
11.0\vc\include\xutility 3243
私は何を間違っていますか?