
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
is the following snipped what you have in mind?
struct base {}; struct derived1 : public base {}; struct derived2 : public derived1 {};
typedef boost::shared_ptr<base> base_ptr;
struct monitor { void add( const base_ptr & _ptr) { // ... } };
struct factory { factory( monitor & _monitor ) : monitor_(_monitor) { }
template<typename T> boost::shared_ptr<T> create( void ) { boost::shared_ptr<T> tmp(new T); monitor_.add(tmp); return tmp; }
private: monitor & monitor_; };
void foo( void ) { monitor m; factory f(m); f.create<derived1>(); f.create<derived2>(); }
-- dave _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Hi Dave, Yes, I think that pretty much does exactly what I require. And gives me a (almost comnpletely) generic factory class to boot! Thanks very much! James