Передача замыкания из 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?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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