Callback-функция для libusb_set_log_cb


Можно ли определить callback-функцию для libusb_set_log_cb внутри класса? Мне нужен доступ к полям класса, но если определять эту функцию внутри класса, то она не будет подходить из-за аргумента **this**

foo.h

class foo
{
    ...
private:
    int r;
    void handleLog(libusb_context *ctx, enum libusb_log_level level, const char* str);
};

foo.cpp

...

void foo::handleLog(libusb_context *ctx, enum libusb_log_level level, const char* str)
{
    ...
    std::cout << r << "\n";
}

...

libusb_set_log_cb(..., handleLog, ...); // 

Ответы (1 шт):

Автор решения: Mikhailo

Можно, но потом ее надо превратить в обычную функцию с помощью bind, указав при этом конкретный объект класса, для которого должна вызываться функция-член.

→ Ссылка