我已經偶然發現了這個網站:http://www2.research.att.com/~bs/C++0xFAQ.html#lambda他們解釋lambda功能。我曾嘗試使用提供的例子,即:爲什麼std :: generate會與lambda生成器一起使用,而std :: fill不會呢?
vector<int> indices(notImportantNumber);
int count = 0;
fill(indices.begin(), indices.end(), [&](){ return ++count; });
,同樣
generate(indices.begin(), indices.end(), [&](){ return ++count; });
雖然,當我嘗試使用帶有填充我不斷收到此錯誤的例子:
錯誤1錯誤C2440:'=':無法從'const '匿名命名空間'::'轉換爲'長'c:\ program files \ microsoft visual studio 10.0 \ vc \ include \ xutility 2692
任何人都知道爲什麼會發生這種情況?在std::fill()
的聲明中,沒有仿函數作爲最後一個參數。
我已經發送了Stroustrup先生的一封電子郵件,所以他的網站可能會更新 – MSalters 2012-07-05 14:08:37