Ваш синтаксис определенно неверен.
В качестве ввода std::for_each()
ожидает
диапазон элементов, обозначаемых 2 итераторами ввода
объект унарной функции, в который каждый элемент в этом диапазоне будет передаваться как единственный входной параметр.
В вашем коде someObjectVectorMethod()
и getSomeObjectVectorData()
не являютсяитераторы, и ваша лямбда не принимает элемент вектора в качестве входных данных.
Что вы пытаетесь достичь с помощью своего кода?Вам, вероятно, нужно что-то более похожее на это:
std::vector<YourObjectType> someObjectVector;
...
std::for_each(someObjectVector.begin(), someObjectVector.end(),
[](YourObjectType &obj) {
obj.setSomeObjectVectorData(...);
}
);
Или:
std::vector<YourObjectType*> someObjectVector;
...
std::for_each(someObjectVector.begin(), someObjectVector.end(),
[](YourObjectType *obj) {
obj->setSomeObjectVectorData(...);
}
);
В зависимости от того, как someObjectVector
фактически объявлено в вашем коде.
Настройтевыше лямбды, чтобы удовлетворить ваши реальные потребности.