// Very simple code to understand how tlcc works #include #define _TLMP_FOO struct _F_FOO{ #define _F_FOO_func1(x) void x func1() virtual _F_FOO_func1( )=0; #define _F_FOO_func2(x) void x func2() virtual _F_FOO_func2( )=0; }; struct FOO{ _F_FOO &c; FOO(_F_FOO &_c):c(_c){} void exec(){ c.func1(); c.func2(); } }; int main() { (); printf ("This is func1\n"); printf ("This is func2\n"); f.exec(); return 0; }