From: Mikko Rasa Date: Mon, 3 Dec 2012 21:58:06 +0000 (+0200) Subject: Turn internal type helpers into structs X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=aa88b0343c2a02d13b166a789e453ce1a056039b;p=libs%2Fdatafile.git Turn internal type helpers into structs Eliminating access specifiers and dummy constructors reduces clutter, and in most cases pure virtual functions prevent instantiation anyway. Since these reside in private or protected sections of other classes, risk of misuse is negligible. --- 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)); }