X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectloader.h;h=76fc412abed60db13c7b7e4b80837ffad0ca93df;hb=4edbe0eb078c4e480682862ccb68ebc8cb284045;hp=5928714215cd056297cab8fd79e1f9647fe648e2;hpb=f51adf2b95f32bdda4d90eb52431405c3ecf8db1;p=libs%2Fdatafile.git diff --git a/source/objectloader.h b/source/objectloader.h index 5928714..76fc412 100644 --- a/source/objectloader.h +++ b/source/objectloader.h @@ -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 -class ObjectLoader: public Loader +class ObjectLoader: virtual public Loader { public: typedef O Object; @@ -40,7 +40,7 @@ Convenience class for loading derived objects. Inherits from the base class loader and shadows its members with ones for the derived type. */ template -class DerivedObjectLoader: public B::Loader +class DerivedObjectLoader: public B { public: typedef O Object; @@ -48,7 +48,10 @@ public: protected: O &obj; - DerivedObjectLoader(O &o): B::Loader(o), obj(o) { } + DerivedObjectLoader(O &o): B(o), obj(o) { } + + template + DerivedObjectLoader(O &o, T &a): B(o, a), obj(o) { } public: O &get_object() const { return obj; }