我試圖填補向量容器使用標準庫的std::generate
函數對象:LAMBDA導致編譯錯誤
vector<className> table(20);
generate(table.begin(), table.end(), [&] { return className(); });
我收到以下錯誤:
Expected primary expression before '[' token.
Expected primary expression before ']' token.
我知道[&]
添加以獲取被返回對象的引用,但我不知道括號來自哪裏(我已經在幾個示例中看到了有關如何使用generate
)的內容。
一些解釋和示範錯誤來自哪裏將不勝感激。
編輯: Lambda表達式需要C++ 11,我沒有使用它。在[&]
之後不需要()
。
你用C++編譯11? – Sean
請提供一個完整的,最簡單的例子來重現您的問題,以便我們自己編譯它。 – AndyG
哪個編譯器和版本? –