X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fcollection.h;h=50905ce0d14972d65b24ac37dc74cdd6b5e21be9;hp=5f0650c6761043977e85a33e55c6854d25b1703f;hb=41230218ca007b56932fd34b79b6f3e3e70764f6;hpb=7feeeacf8fa3eae889cb256c42ada615c4761eec diff --git a/source/collection.h b/source/collection.h index 5f0650c..50905ce 100644 --- a/source/collection.h +++ b/source/collection.h @@ -255,6 +255,9 @@ private: template CollectionItemTypeBase *get_type() const; + /// Gets a descriptor with the same type as another descriptor. + CollectionItemTypeBase *get_type(const CollectionItemTypeBase &) const; + /// Returns the descriptor for an item, or null if it's of an unknown type. CollectionItemTypeBase *get_type_for_item(const Variant &) const; @@ -380,7 +383,7 @@ private: Creator(FuncPtr f): func(f) { } virtual T *create(Collection &coll, const std::string &name) const - { return (static_cast(coll).*func)(name); } + { return (dynamic_cast(coll).*func)(name); } }; template