]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/objectloader.h
Make Loader a virtual base of ObjectLoader to permit diamond inheritance
[libs/datafile.git] / source / objectloader.h
index 4dcb981864e7c2d924a61dcbd44e552dfffa6cb0..76fc412abed60db13c7b7e4b80837ffad0ca93df 100644 (file)
@@ -20,7 +20,7 @@ Provides the basic functionality of an object loader.  Deriving from this
 allows loading values directly into member variables of the objects.
 */
 template<typename O>
-class ObjectLoader: public Loader
+class ObjectLoader: virtual public Loader
 {
 public:
        typedef O Object;
@@ -50,6 +50,9 @@ protected:
 
        DerivedObjectLoader(O &o): B(o), obj(o) { }
 
+       template<typename T>
+       DerivedObjectLoader(O &o, T &a): B(o, a), obj(o) { }
+
 public:
        O &get_object() const { return obj; }
 };