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

Private GIT Repository
Add option "-v" (verbose).
[loba.git] / named_object_list.h
index ae7229dcdef8c91c218961277a7e7151ca24cb3b..929a0dbee112ca1d0796de11534980c9f70b4044 100644 (file)
@@ -4,6 +4,17 @@
 #include <map>
 #include <string>
 
 #include <map>
 #include <string>
 
+// Define an associative container that maps a name with a class and a
+// description.  All classes must be derived from a same base class.
+//
+// We can then use the name to create an object of the associated
+// class, and to retrieve a pointer to this object.
+//
+// Furthermore, it is possible to iterate over the elements to get
+// their name and their description.
+
+// I am too lazy to comment the code, which should be obvious...
+
 //===== arity 0 =====
 
 template <typename Base>
 //===== arity 0 =====
 
 template <typename Base>
@@ -74,9 +85,6 @@ public:
 
 //===== arity 2 =====
 
 
 //===== arity 2 =====
 
-#include <map>
-#include <string>
-
 template <typename Base, typename Arg1, typename Arg2>
 class named_object_list2 {
 protected:
 template <typename Base, typename Arg1, typename Arg2>
 class named_object_list2 {
 protected:
@@ -146,6 +154,7 @@ public:
 
 //===================
 
 
 //===================
 
+// "NOL" like in Named_Object_List....
 #define NOL_INSERT(name, descr, class) insert(name, new creator<class>(descr))
 
 #endif // !NAMED_OBJECT_LIST_H
 #define NOL_INSERT(name, descr, class) insert(name, new creator<class>(descr))
 
 #endif // !NAMED_OBJECT_LIST_H