X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fcollection.h;h=1f4b5562107a338190cf221355692aaa4c64d04f;hp=be9ae88c491595f925db46e30aeff2daa67deb5f;hb=aa88b0343c2a02d13b166a789e453ce1a056039b;hpb=698d4ae13da87b7c53aa96bca99c3deaff397eec diff --git a/source/collection.h b/source/collection.h index be9ae88..1f4b556 100644 --- a/source/collection.h +++ b/source/collection.h @@ -284,16 +284,13 @@ public: class CollectionItemTypeBase { protected: - class TagBase + struct TagBase { - protected: - TagBase() { } - public: virtual ~TagBase() { } }; template - class Tag: public TagBase + struct Tag: TagBase { }; std::string kwd; @@ -327,37 +324,28 @@ template class CollectionItemType: public CollectionItemTypeBase { private: - class CreatorBase + struct CreatorBase { - protected: - CreatorBase() { } - public: virtual ~CreatorBase() { } virtual T *create(Collection &, const std::string &) const = 0; }; template - class Creator: public CreatorBase + struct Creator: CreatorBase { - public: typedef T *(C::*FuncPtr)(const std::string &); - private: FuncPtr func; - public: Creator(FuncPtr f): func(f) { } virtual T *create(Collection &coll, const std::string &name) const { return (static_cast(coll).*func)(name); } }; - class StoreBase + struct StoreBase { - protected: - StoreBase() { } - public: virtual ~StoreBase() { } virtual void store(Collection &, const std::string &, T *) = 0; @@ -366,9 +354,8 @@ private: }; template - class Store: public StoreBase + struct Store: StoreBase { - public: virtual void store(Collection &coll, const std::string &name, T *obj) { coll.add(name, static_cast(obj)); }