O C ++ 0x suportará __stdcall ou lambdas externas de captura-C “nada”?

Ontem, eu estava pensando se seria possível usar a conveniência das funções lambda C ++ 0x para escrever retornos de chamada para funções da API do Windows.

Por exemplo, e se eu quisesse usar um lambda como umEnumChildProc comEnumChildWindows? Algo como:

EnumChildWindows(hTrayWnd, CALLBACK [](HWND hWnd, LPARAM lParam) {
        // ...
        return static_cast<BOOL>(TRUE); // continue enumerating
    }, reinterpret_cast<LPARAM>(&myData));

Outro uso seria escreverextern "C" retornos de chamada para rotinas C. Por exemplo.:

my_class *pRes = static_cast<my_class*>(bsearch(&key, myClassObjectsArr, myClassObjectsArr_size, sizeof(my_class), extern "C" [](const void *pV1, const void *pV2) {
        const my_class& o1 = *static_cast<const my_class*>(pV1);
        const my_class& o2 = *static_cast<const my_class*>(pV2);

        int res;
        // ...
        return res;
    }));

Isso é possível?

Entendo que lambdas que capturam variáveis nunca serão compatíveis com C, mas pelo menos me parece possível quecapturar-nada lambdas podem ser compatíveis.

questionAnswers(3)

yourAnswerToTheQuestion