Узнал что в WNDCLASS можно передать лямбду в качестве lpfnWndProc, и да, передать ее можно. Тут же подумалось мне что можно передать какие-то локальные значения в лямбду, но не тут то было. Простая лямбда, да, а вот с передачей значений по ссылке нет. Можно как то исправить ситуацию?
не существует подходящей функции преобразования из "lambda []LPARAM (HWND, UINT, WPARAM, LPARAM)->LPARAM" в "WNDPROC"
// Так пожалуйста
wc.lpfnWndProc = [](HWND, UINT, WPARAM, LPARAM) -> LRESULT {};
// Так нельзя.
wc.lpfnWndProc = [&](HWND, UINT, WPARAM, LPARAM) -> LRESULT {};
Нельзя. В общем случае средств closure, которые в итоге формируют "обычный" указатель на функцию в языке нет. Лямбда тут не поможет - как только появился не пустой capture, лямбду больше уже нельзя преобразовать в обычный указатель на функцию.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости