Будет ли C ++ 0x поддерживать __stdcall или extern «C» лямбда без захвата?

Вчера я думал о том, можно ли будет использовать удобство лямбда-функций C ++ 0x для написания обратных вызовов для функций Windows API.

Например, что если я хочу использовать лямбду в качествеEnumChildProc сEnumChildWindows? Что-то вроде:

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

Другое использование будет писатьextern "C" обратные вызовы для подпрограмм Си. Например.:

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;
    }));

Это возможно?

Я могу понять, что лямбды, которые захватывают переменные, никогда не будут совместимы с C, но мне, по крайней мере, кажется возможнымне снимаемое ничего лямбды могут быть совместимы.

Ответы на вопрос(0)

Ваш ответ на вопрос