Я сохраняю указатели на лямбда в динамически выделенных объектах:
struct Function {
SomeType*(*func)(int);
Function(SomeType*(*new_func)(int)):
func(new_func) {}
}
Function* myf = new Function(
[](int x){ return doSomething(x); }
);
delete myf;
Должен ли я написать что-то особенное в деструкторе этого класса?