C++ - Definition of A Member of A Class Template -
i have template class listmap member called iterator.
template <typename key, typename value, class less = xless<key>> class listmap { public: class iterator; //... } the definition iterator out of list map follows,
template <typename key, typename value, class less = xless<key>> class listmap<key, value, less>::iterator { //... } less template class comparison,
template <typename type> struct xless { bool operator() (const type& left, const type& right) const { return left < right; } }; i'm running simple test see whether works, gives me error
cannot add default template argument definition of member of class template
my understanding of template low. why can't use xless in definition of iterator here?
in class declaration listmap provide default last template type (i.e., class less = xless<key>).
in definition of iterator specify default again, remove it.
template <typename key, typename value, class less> // ^^^^^^^^^^ class listmap<key, value, less>::iterator { //... }
Comments
Post a Comment