Hi, regarding iterator_adaptor<>, I've created a custom iterator over a map as below. Basically, it allows to iterate over map values without being worried with key values. Anyway, if I would want to do something like this: typedef map<int,int> map_type; typedef map_data_iterator<map_type::iterator> map_iterator; map_type map; map_iterator it = map_data_iterator(map.begin()); for (; it != map.end(); ++map) ... I'd have to add an equal method to the map_data_iterator class that takes the base type iterator, right? I tried to do so below, but it still complains about not being able to convert: binary '!=' : no operator found which takes a left-hand operand of type 'OpenTissue::DepthFirstTesselator<Types>::prism_iterator' (or there is no acceptable conversion) I know this is probably not the right thing(tm) to do , but I basically need to be able to do this comparison for backward compatibility with deprecated code. Thanks, --nico template <class Iterator> class map_data_iterator : public iterator_adaptor< map_data_iterator<Iterator>, Iterator, typename Iterator::value_type::second_type > { typedef typename map_data_iterator::iterator_adaptor_ super_t; typedef typename Iterator::value_type pair_type; typedef typename pair_type::second_type second_type; friend class iterator_core_access; public: map_data_iterator() {} // should be explicit, but removed to give OpenTissue backwards compatibility map_data_iterator(Iterator x) : super_t(x) {} template<class OtherIterator> map_data_iterator( map_data_iterator<OtherIterator> const& r , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0 ) : super_t(r.base()) {} private: second_type & dereference() const { return this->base()->second; } // added to give support for comparison with base type iterators //bool equal(Iterator const& other) const //{ // return (this->base() == other); //} //bool equal(super_t const& other) const //{ // return (*this == other); //} }; -- nico galoppo von borries @ address: 105 creel st., chapel hill comp. graphics phd. student @ north carolina, 27516 USA UNC, chapel hill @ phone: +1 (919) 962-1898 (office) @ +1 (919) 942-7609 (home) @ email: nico at cs dot unc dot edu @ homepage: http://www.cs.unc.edu/~nico --- debian linux :: vim powered