Я использую цикл std::for_each
для локальной переменной функции-члена класса. Я хотел бы вызвать другую функцию-член того же класса из лямбды в for_each. Ниже приведен упрощенный пример того, что я пытаюсь сделать:
void some_class::another_function()
{
cout << "error";
}
void some_class::some_function( function<bool(const int)> &f)
{
vector<int> local_variable = {0,0,0,1,1,3,5,43};
std::for_each( local_variable.begin(), local_variable.end(),
[&f](const int item)
{
if( !f(item) )
another_function();
}
}
GCC 4.6 сообщает мне, что this
не захвачено (поэтому я должен это сделать) Это лучшее решение? Или я должен захватывать только те функции, которые мне нужны (но это может быть грязно для больших конструкций)?