
Pavel Vozenilek wrote:
or something trickier, like:
- calling C++ functions:
plugin.call<void (void)>("bar") -- no need for "extern "C"
- some auto-registraction mechanisms
plugin_registry<CodeGenerator> plugins; plugins.load("foo"); plugins.load("bar");
plugins["i386"].run(.......)
You may take look on polymorphic_map (in Boost.Files section). It is work in progress but useable and can serve as base for advanced object factory.
Maybe, though in case of plugins classes are identified by names, not by they real types -- since the types are generally unknown in the caller. Speaking about the library itself, I'd really prefer if it were in sandbox -- I had no idea it exists. Ideally, it would be nice to have some "CVS digest", like: http://cvs-digest.org/index.php?issue=jul162004 to facilitate cooperation. For example, I was interested in polymorphic map where the keys do no have to derived from common base. I even think boost_sandbox/filesytem has some code like that. Bringing this all together would be good. - Volodya