c++ - Structure initialization -
i have used following structure
template <typename item> struct tset { typedef std::set <int, comparator <item> > type; };
as data member of the structure
template <typename item> struct tobject { int code; ... typename tset <item> ::type indices; tobject ( const list <item> *list ) : code( 0 ), indices ( list ) {} };
where
template <typename item> struct tlist { typedef std::vector <item> type; }; template <typename item> class list { private: typename tlist <item>::type items; };
but have changed data model to
template <typename item> class tset : public std::set <int, comparator <item> > { }; template <typename item> struct tobject { int code; ... typename tset <item> indices; tobject ( const list <item> *list ) : code ( 0 ), indices ( list ) {} //error: can not convert parameter 1 const list <item> const tset <item> };
and there problems structure initialization.
error: can not convert parameter 1 const list <item> const tset <item>
where problem?
why expect conversion list
tset
if did not write one? also, type of indices
needs typename
on front since dependent type.
Comments
Post a Comment