ESP-32'de C ++ kullanıyorum. Bir zamanlayıcı kaydederken bunu yapmak zorundayım:
timer_args.callback = reinterpret_cast<esp_timer_cb_t>(&SoundMixer::soundCallback);
timer_args.arg = this;
Burada zamanlayıcı çağırır soundCallback
.
Ve bir görevi kaydederken aynı şey:
xTaskCreate(reinterpret_cast<TaskFunction_t>(&SoundProviderTask::taskProviderCode), "SProvTask", stackSize, this, 10, &taskHandle);
Böylece yöntem ayrı bir görevde başlatılır.
GCC beni bu dönüşümler hakkında her zaman uyarıyor, ancak planlandığı gibi çalışıyor.
Üretim kodunda kabul edilebilir mi? Bunu yapmanın daha iyi bir yolu var mı?
std::bind
Nesne işaretçisini ilk yöntem bağımsız değişkeni olarak da kabul etmiyor mu ?