Out of a window procedure, I'm writing a switch statement using self-executing lambdas, like this:
LRESULT CALLBACK proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg)
{
case WM_CREATE: return [&](WPARAM wp, LPARAM lp) {
do_something(wp, lp);
return 0;
}(wp, lp);
case WM_SIZE: return [&](HWND hWnd) {
do_another_thing(hWnd);
return 0;
}(hWnd);
}
return DefWindowProc(hWnd, msg, wp, lp);
}
I believe compilers are free to optimize it pretty much the way they want, but generally speaking, would a compiler add much boilerplate code to this, comparing to not using these lambdas?
Could a compiler detect the redundant lambdas and remove them?
Aucun commentaire:
Enregistrer un commentaire