c++: использование лямбда-функции в качестве параметра

Подскажите как использовать лямбда функцию в качестве параметра метода класса

Есть следующее:

class MyClass {

    struct IData {
    };

    using func_t = bool (*) (const MyClass::IData&);
    
    void method(func_t filter = nullptr);
};

но вызов

object.method([](const MyClass::IData& data) {return true;});

приводит к ошибке

Error (active) E0413 no suitable conversion function from "lambda []bool (MyClass::IData &data)->bool" to "MyClass::func_t" exists

как это можно исправить?


Ответы (2 шт):

Автор решения: Lofectr
std::function<bool(const MyClass::IData&)>
→ Ссылка
Автор решения: Zhihar

проблема оказалась до банального проста - в вызове в лямбда-выражении пропустил константный параметр и вместо

object.method([](const MyClass::IData& data) {return true;});

использовал

object.method([](MyClass::IData& data) {return true;});
→ Ссылка