I think I need to call delete *it; in the remove(), but how do I erase that element in the std::list then?
std::list<NX::OBJECT::Object*> objects;std::list<NX::OBJECT::Object*>::iterator it;~Factory(){for(it = objects.begin(); it != objects.end(); ++it) if(*it) delete *it;objects.clear();} inline void Insert(NX::OBJECT::Object* obj){objects.push_back(obj);}inline void Remove(const std::string& id){for(it = objects.begin(); it != objects.end(); ++it) if((*it)->GetName() == id) { objects.erase(it); break; }}