Я пытаюсь зарегистрировать обратный вызов в C-API, который использует стандартную парадигму function-pointer + context. Вот как выглядит api:
void register_callback(void(*callback)(void *), void * context);
То, что я действительно хотел бы сделать, это зарегистрировать С++ лямбда в качестве обратного вызова. Кроме того, я хочу, чтобы лямбда была той, которая захватила переменные (т.е. Не может быть преобразована в прямой апатрид std::function
)
Какой код адаптера мне нужно написать, чтобы иметь возможность регистрировать лямбда в качестве обратного вызова?