我试图填补向量容器使用标准库的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
哪个编译器和版本? –