
I have a need to store an instance of a template class in each vertex of a adjacency_list. I was wondering if my idea below will do: template <class House_Type, class Number_Type> class Home { public: uint32_t id; House_Type type; Number_Type digits; }; The following classes are specific instances of the Home class: class Ranch_Home : public Home <std::string, uint8_t> {} class Tudor_Home : public Home <std::string, float> {} I was thinking that the property to store this would have to be something allows for either Home type to be stored at a vertex. struct house_obj{}; typedef property < house_obj, boost::shared_ptr< Home< House_Type_Base, Digit_Type_Base> > > VertexProperty; In this case the House_Type_Base and Digit_Type_Base what I am not sure about here. I want to use a Factory to create the appropriate Home based on a string I read from the file as was seen above. For example, for each line of the file I plan on using a boost spirit parser to parse the file since I need all three elements before calling the factory. 1 "Ranch" 20 2 "Tudor" 20509.0 So how can I use the property when the template arguments are objects that have no common base class between them? Stephen -- Email: storri@torri.org