X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fobjectloader.h;h=978366f730e51cc197fe7dd20ab7f56f4b52e84e;hb=refs%2Fheads%2Fwip;hp=76fc412abed60db13c7b7e4b80837ffad0ca93df;hpb=c834c80972ce2415f7d5f35cc9f9498ac1f08f85;p=libs%2Fdatafile.git diff --git a/source/objectloader.h b/source/objectloader.h index 76fc412..978366f 100644 --- a/source/objectloader.h +++ b/source/objectloader.h @@ -1,18 +1,12 @@ #ifndef MSP_DATAFILE_OBJECTLOADER_H_ #define MSP_DATAFILE_OBJECTLOADER_H_ -#include +#include "except.h" #include "loader.h" namespace Msp { namespace DataFile { -class no_collection: public std::runtime_error -{ -public: - no_collection(const std::type_info &); -}; - class Collection; /** @@ -48,10 +42,8 @@ public: protected: O &obj; - DerivedObjectLoader(O &o): B(o), obj(o) { } - - template - DerivedObjectLoader(O &o, T &a): B(o, a), obj(o) { } + template + DerivedObjectLoader(O &o, Args &&... a): B(o, std::forward(a)...), obj(o) { } public: O &get_object() const { return obj; } @@ -69,7 +61,7 @@ public: typedef C Collection; protected: - C *coll; + C *coll = nullptr; CollectionObjectLoader(O &o, C *c): ObjectLoader(o), coll(c) { }