]> AND Private Git Repository - loba.git/blobdiff - named_object_list.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Use git diff instead of diff-index for setlocalversion.
[loba.git] / named_object_list.h
index 929a0dbee112ca1d0796de11534980c9f70b4044..7731a89f5d99e08d179b78e33c2f59f3f11d26f6 100644 (file)
@@ -24,6 +24,7 @@ protected:
         std::string description;
         creator_base(const std::string& descr): description(descr) { }
         creator_base(const char* descr): description(descr) { }
         std::string description;
         creator_base(const std::string& descr): description(descr) { }
         creator_base(const char* descr): description(descr) { }
+        virtual ~creator_base() { }
         virtual Base* operator()() const = 0;
     };
 
         virtual Base* operator()() const = 0;
     };
 
@@ -64,12 +65,7 @@ public:
         if (it != assoc.end())
             return (*it->second)();
         else
         if (it != assoc.end())
             return (*it->second)();
         else
-            return NULL;
-    }
-
-    Base* new_instance(const char* name) const
-    {
-        return new_instance(std::string(name));
+            return nullptr;
     }
 
     const std::string& get_name(iterator& it) const { return it->first; }
     }
 
     const std::string& get_name(iterator& it) const { return it->first; }
@@ -92,6 +88,7 @@ protected:
         std::string description;
         creator_base(const std::string& descr): description(descr) { }
         creator_base(const char* descr): description(descr) { }
         std::string description;
         creator_base(const std::string& descr): description(descr) { }
         creator_base(const char* descr): description(descr) { }
+        virtual ~creator_base() { }
         virtual Base* operator()(Arg1, Arg2) const = 0;
     };
 
         virtual Base* operator()(Arg1, Arg2) const = 0;
     };
 
@@ -133,12 +130,7 @@ public:
         if (it != assoc.end())
             return (*it->second)(arg1, arg2);
         else
         if (it != assoc.end())
             return (*it->second)(arg1, arg2);
         else
-            return NULL;
-    }
-
-    Base* new_instance(const char* name, Arg1 arg1, Arg2 arg2) const
-    {
-        return new_instance(std::string(name), arg1, arg2);
+            return nullptr;
     }
 
     const std::string& get_name(iterator& it) const { return it->first; }
     }
 
     const std::string& get_name(iterator& it) const { return it->first; }