Inspirations
Reflection Package for C++ by Konstantin Knizhnik
and the Static Function Pointer Table Polymorphism Pattern (SFPTPP) introduced by Christopher Diggins in An Efficient Variant Type article.
TODO
The main things to do in the points below:
test library under different compilers;
add methods into vtl_rtti class to return a collection of invokers - method and field invokers;
modify passing the second argument in vtl_get_set_invoker::set_value(vtl_obj& x, vtl_obj v) method to pass it by reference;
Please do not hesitate to contact me, if you would like to help, to raise an error or to ask a question.
Compilers
The list of compilers that do compile the project:
Cygwin GCC 3.4.2.
Mingw32 C & C++ 3.4.2.
MSVC7 - only example code
The list of compilers that don't compile the project:
Digital Mars 8.48.10n - SFINAE problem with mfns::is_vtl_class metafunction
Usage
Please, take a look at sample code "main.cpp" that is shipped with VTL Reflection source code or see it here.
Download
0.1.1 alpha release of VTL Reflection available here.
You can get current version of VTL Reflection from anonymous CVS server:
cvs -z3 -d:pserver:anonymous@vtl.cvs.sourceforge.net:/cvsroot/vtl co -P vtlreflection
Home
VTL