Re:Show HN: The Silicon C++14 Web Framework
by bratsche on Monday January 19, 2015 @09:57AM
(#8912142)
It seems like you could do something like:
Then use S(test) instead of @test and any files that need these symbols defined could just have IOD_SYM(test) at the top or something.
[ Parent
| on HN ]
Re:Show HN: The Silicon C++14 Web Framework
by matt42 on Monday January 19, 2015 @10:08AM
(#8912191)
#define S(name) is a bit dangerous. It would affect any C/C++ function called S.
Re:Show HN: The Silicon C++14 Web Framework
by pfultz2 on Monday January 19, 2015 @12:22PM
(#8912832)
Actually using [ZLang](https://github.com/pfultz2/ZLang), you could define them like this:
#define IOD_DEFINE_SYMBOL(name) iod_define_symbol(name, _##name)
#define IOD_S(name) s::_##name
#define ZLANG_iod_define (IOD_DEFINE_SYMBOL)
#define ZLANG_iod_s (IOD_S)
And then compiling with `-DZLANG_NS=iod` you can call it like this: // Define symbols
$(define hello)
$(define message)
auto hello_api = make_api(
// The hello world procedure.
$(s hello) = [] () { return D($(s message) = "Hello world."); }
);
Also, ZLang can be supported without a need for a dependency on ZLang.