
Hello. I'm implementing a property class which uses my own library (still in early stages) and I want to extend it to general reflection (not for now) and shared library loading. I found boost.extensions, which is not a boost library for now. I don't know if this is the place to ask for this, if it is not, point me where I could go. It's great to see I won't have to taje any more pain to load plugins :-). I would like to make a feature request. In boost.extensions, factories are used to construct types of a derived class with pointers. So, in order to register a new class, you have to tell which is the base class to the extensions system. I think there is a better way, with which you wouldn't need to do this. It is inspired in this type style of value-based type system: http://stlab.adobe.com/wiki/index.php/Image:2008_06_26_classes_that_work.pdf An object which can contain any other object (like boost::any) could be created. This way (this is how I do in my own solution) you just have to register a type without worrying about its base class: REGISTER_CLASS(myns, myclass) Now I can do like this: object_t myobject = introspection::create_object("myns", "myclass"); when I want my object to become "myclass" I do: myns::myclass & refclass = get_referencemyns::myclass(myobject); This works fairly well, and factories go away, freeing the user from learning more interfaces. Just register your type and use it. Everything else is transparent. The interface is simple, no factories or anything else to handle. This can be also used from shared libraries without problems. At least, I think that it should be provided a way to register a factory of non-pointer types. In the documentation it says a pointer is created for the animal class, disabling this type of value-based registration.