[PL] Ciekawe elementy Visual Studio 2010 dla programisty C/C++ [0x02] TR1, C++0x
C++ ewoluuje, standard się zmienia. Visual Studio 2010 implementuje zmiany w kompilatorze.
Oto telegraficzny skrót na temat wyrażeń lambda w C++ i deklaracji zmiennej auto, czyli odpowiednik var z C#/.NET Framework.
/*
Let's try to hack this:
LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
with lambdas:
*/
auto winProc =
[](HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -> LRESULT CALLBACK
{
//TODO: real Window Proc;
switch (msg) {
case WM_CLOSE:
PostQuitMessage(0);
return S_OK;default:
return DefWindowProc(hwnd,msg,wParam,lParam);
};
};
//Calling it..:
LRESULT result =
winProc(someHwnd,someMsg,someWParam, someLParam);
Inspirujące? Jak przegapiliście zmiany w C++ zapraszam najpierw na Wikipedię, a później do stosownych dokumentacji i wypróbujcie je z Visual Studio 2010.
Od razu zadanie. Powyższy przykład w linii prostej nie da się wykorzystać do zarejestrowania procedury okna w jego klasie (via WNDCLASS i RegisterWindowClass). Zadanie, a raczej pytanie, czy widzicie jakieś inne przykłady gdzie można by się spróbować pokusić o wykorzystanie powyższej konstrukcji w bezpośrednim powiązaniu do znanych windowsowych API?
Ciekawe przykłady realnie do wykorzystania czy nawet te czysto życzeniowe zostaną nagrodzone książką “Software Requirements 2nd. Edition” lub I.M.Wright’s “Hard Code”. Odpowiedzi proszę na maila.