Index: boost/iterator/iterator_facade.hpp =================================================================== --- boost/iterator/iterator_facade.hpp (revision 71401) +++ boost/iterator/iterator_facade.hpp (working copy) @@ -512,6 +512,12 @@ # endif template + static typename Facade::reference dereference(Facade& f) + { + return f.dereference(); + } + + template static typename Facade::reference dereference(Facade const& f) { return f.dereference(); @@ -638,6 +644,11 @@ typedef typename associated_types::iterator_category iterator_category; + reference operator*() + { + return iterator_core_access::dereference(this->derived()); + } + reference operator*() const { return iterator_core_access::dereference(this->derived()); Index: boost/iterator/transform_iterator.hpp =================================================================== --- boost/iterator/transform_iterator.hpp (revision 71401) +++ boost/iterator/transform_iterator.hpp (working copy) @@ -117,6 +117,9 @@ { return m_f; } private: + typename super_t::reference dereference() + { return m_f(*this->base()); } + typename super_t::reference dereference() const { return m_f(*this->base()); }