Передача Лямбды C++ в С API

Имею СИ API ассинхронное, которое требует передачи функций обратного вызова(вызов функций в отдельном потоке). Допустимо объявить лямбду в требуемой сигнатуре на стеке и передать ее параметром в си вызов? Лямбда ничего не захватывает. Правильно ли я понимаю, что на адрес метода не влияет время жизни лямбды. Для примера код:

C API:

typedef void ( *Callback_t )( uint8_t*, int );
int make_request(Callback_t clbck); // Колбек будет вызван в другом потоке и произвольное время

C++

class MyCWrapper {
    int request() {
        auto lambda = [](uint8_t* buf, int size) {
            for(int i = 0; i < size; i++) {
                std::cout<< buf[i] << ','
            }
        };
        return make_request(lambda);
    }
};

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