私はこのウェブサイトに出くわしました: http://www2.research.att.com/~bs/C++0xFAQ.html#lambdaラムダ関数について説明しています。提供された例を使用しようとしました。つまり、次のとおりです。
vector<int> indices( notImportantNumber );
int count = 0;
fill(indices.begin(), indices.end(), [&](){ return ++count; });
同様に
generate(indices.begin(), indices.end(), [&](){ return ++count; });
ただし、この例を fill で使用しようとすると、このエラーが発生し続けます:
エラー 1 エラー C2440: '=': 'const `anonymous-namespace'::' から 'long' に変換できません c:\program files\microsoft visual studio 10.0\vc\include\xutility 2692
なぜこれが起こっているのか誰にも分かりますか?の宣言にstd::fill()
は、最後のパラメーターとしてのファンクターはありません。