Я пытаюсь заполнить вектор контейнер с объектами, используя 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
).
Некоторое объяснение и демонстрация того, откуда исходит ошибка, будут оценены.
Редактировать: Лямбда-выражения требуют C++ 11, которые я не использовал. Нет необходимости в ()
после [&]
.
Вы компиляции с C++ 11? – Sean
Пожалуйста, предоставьте полный минимальный пример, который воспроизводит вашу проблему, чтобы мы могли ее скомпилировать самостоятельно. – AndyG
Какой компилятор и версия? –