|
|
|
|
|
by Elv13
3865 days ago
|
|
I had to write some introspection system for a project a while ago. It wasn't the same use case and calling by name wasn't even required. It was more about handling random object from an unified interface issue. Anyway, here is an extreme oversimplified introspection engine I just wrote. It only implement creating wrapper "generic" object by class name. While we both used some of the same tricks, I have a few more that make introspection simpler. My implementation also work on embedded systems without a working "dynamic_cast" and C++ runtime type identifier. https://gist.github.com/Elv13/715fb1b3dc4b774a06ca Edit: Just to clarify, this is a much smaller subset of what you implemented in the blog post, but it can be extended into a full introspection system using more lambdas maps and variadic template tricks. |
|
https://gist.github.com/Elv13/fa854e502c6c076f6bb8
REGISTER_METHOD(MyClass, myMethod3) NO_ARG
REGISTER_METHOD(MyClass, myMethod ) ARG(std::string) ARG(std::string) NO_ARG
REGISTER_METHOD(MyClass, myMethod2) RET(int) NO_ARG
Without boost preprocessor!
/me ok, time to stop wasting time on this. Please, myself, forget about this and go to sleep