Features:
- Use arbitrary information to describe a class
- Instantiate a class
- Call its methods by arbitrary identifiers (although you can use strings to identify methods, it is possible to use any arbitrary information to select them)
- Fast function calls - you only have the overhead of two functions called by function pointers.
- Call functions without knowing what parameters they require.
- Containers indexed by type.
reflection.hpp reference
reflector reference
Extension/Reflection interoperability
2 comments:
You may like this library which has similar goals as yours: http://sourceforge.net/projects/crd
Its priority is mostly serialization of any form (files, xdr, database), given a description list of a struct/class. It is not-intrusive, and has run-time and compile-time modes.
I think that Boost.Serialization is more similar to crd than Boost.Reflection is. I have actually looked at crd before, but notice that major restructuring has occurred in the past week or so. I'll have to look at it in more detail.
Post a Comment