hmmm... Why did you write template<T> void addMeta(const std::string&, const Value<T>& v); ?
Wouldn't this be simpler: template<T> void addMeta(const std::string&, const T & v); ? Sukender PVLE - Lightweight cross-platform game engine - http://pvle.sourceforge.net/ ----- "Peter Amstutz" <peter.amst...@tseboston.com> a écrit : > You could use an implicit constructor, e.g. > > template<typename T> > class Value { > Value(T); > Value(const Value<T>&); > }; > > class Value<int>; > > template<T> > void addMeta(const std::string&, const Value<T>& v) { > Value<T>* localcopy = new Value<T>(v); > } > > so the function call: > > addMeta("myMeta", 5); > > is implicitly converted to: > > addMeta(std::string("myMeta"), Value<int>(5)); > > > Two considerations: > - There is some copying involved, which might be undesirable for > large > arrays. C++ 2011 move constructors are intended to solve this > problem > in general, but it's unlikely that OSG compatibility requirements > will > allow the use of C++ 2011 features for a while. > > - The way it is described here, any customization for Value<T> must > occur through template specialization, rather than subclassing. To > support subclassing, use a clone() method instead of new Value<T>(v). > > On a related note, my preference would be for the Value<T> class to > be > immutable so that you are required to set metadata values through the > API rather than poking Value<T> objects directly. This is necessary > if > you want to support alternate backing stores which don't use Value<T> > objects in the backend at all. > > - Peter > > On 4/15/2011 11:10 AM, Sukender wrote: > > Hi Peter, > > > > Thanks... but what for the addMeta<T>()? > > I mean it's okay having a addMeta(string, ValueBase *), but this > will force you to write > > o->addMeta( "myMeta", new Value<int>(5) ); > > instead of simply > > o->addMeta( "myMeta", 5 ); > > which could be nice. Any idea? > > > > Sukender > > PVLE - Lightweight cross-platform game engine - > http://pvle.sourceforge.net/ > -- > Peter Amstutz > Senior Software Engineer > Technology Solutions Experts > Natick, MA > 02131 > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org