Мимические лямбды в простой C (msvc) - рекурсивные лямбды - PullRequest
0 голосов
/ 08 октября 2019

Итак, передо мной стояла задача подражать лямбда-определениям в простом C на компиляторе msvc (он не поддерживает расширения gcc) - я предложил решение для включения файлов, которое в основном отражает файл в верхней части. В большинстве случаев работает нормально, но что, если я хочу включить лямбду в мою лямбду:

#ifndef FIRSTPASS
#include <stdio.h>

//here comes your "nested" definitions
#define FIRSTPASS
#include "source.c"
#undef FIRSTPASS

main(){
#else
    int global = 2;
    int func() 
    {
        //define another "lambda" here
        printf("%d\n", global);
    }
#endif
#ifndef FIRSTPASS
    func();}
#endif
...