$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Marco Costalba (mcostalba_at_[hidden])
Date: 2007-08-31 14:07:37
This is a simple yet interesting object factory.
Main points are:
- Support for many class hierarchies at the same time
- Object constructor arguments with generic type
- Object constructor overloading
- Support for user supplied 'object create' functions
- Dynamic class registering/unregistering
- No RTTI or special library requirements, only an associative
container is used.
- And finally the most important: 100% type safe also at runtime
Especially constructor overloading and runtime type safety are two
niceties you won't find easily googling around.
You can view as HTML page a simple and commented test program here:
http://digilander.libero.it/mcostalba/simple_factory/main.cpp.html
A page with the source is here:
http://digilander.libero.it/mcostalba/simple_factory/simple_factory.hpp.html
Below are the links to the actual files:
http://digilander.libero.it/mcostalba/simple_factory/main.cpp
http://digilander.libero.it/mcostalba/simple_factory/simple_factory.hpp
I'm sorry if you find the comments a bit "entry level", but they are
intended for a wider audience.
Finally there are a couple of bugs that I won't reveal ;-) they are
not easy to spot and fixing them will complicate the code.
Because this is intended more as a presentation of the ideas then
production code I will fix them when I'll be confident design is
sound.
Anyhow I keep a separated test framework with about 40 tests to
exercise the factory under different paths. So I would say this is
'working' code.
Any comment or hint on how to improve the design or implementation
would be very appreciated.
Thanks
Marco