Передача замыкания из Cython в C++C++

Программы на C++. Форум разработчиков
Гость
Передача замыкания из Cython в C++

Сообщение Гость »


У меня есть функция C++, которая принимает обратный вызов, например:

void func(std::function обратный вызов) { ... } Я хочу вызвать эту функцию из Cython, задав ей замыкание, т. е. то, что я бы сделал с лямбда-выражением, если бы вызывал ее из C++. Если бы это была функция C, у нее были бы дополнительные аргументы void*:

typedef void(*callback_t)(int, int, void*); void func (callback_t обратный вызов, void *user_data) { обратный вызов (1, 2, user_data); } а затем я бы просто передал PyObject* как user_data (здесь есть более подробный пример).

Есть ли способ сделать это на языке C++, не прибегая к явному использованию user_data?

Вернуться в «C++»