Итак, передо мной стояла задача подражать лямбда-определениям в простом 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