У меня есть функция, которая принимает в качестве аргумента CallbackType
, то есть
typedef (*void) (const *char, bool)
Мне нужно передать дополнительный контекст, поэтому я подумал, что было бы неплохо использовать лямбды:
CallbackType DelegateHandler(Pointer ptr) {
return [&](const char* a, bool b) {
callback(ptr, a, b);
};
}
Это работает, только если это лямбда захвата, и лямбда захвата не может быть преобразована в обычный указатель функции, поэтому я получаю ошибку:
no known conversion for argument 1 from SetHandler(Pointer)::<lambda(const char*, bool)>’ to ‘CallbackType’ {aka ‘void(*)(const char*, bool)’
Любая идея, как решить эту проблемупо-простому?