id summary reporter owner description type status milestone component version severity resolution keywords cc 10769 "iterator_adaptor does not properly inherit ""pointer"" typedef from the base iterator" Matei David jeffrey.hellrung "I'm trying to define a `Derived_Iterator` class using a `Base_Iterator` class and the glue class `iterator_adaptor< Derived_Class, Base_Class, ...>` (as base of `Derived_Iterator`). In my use case, neither pointers nor references are plain: {{{ Base_Iterator::pointer != Base_Iterator::value_type* Base_Iterator::reference != Base_Iterator::value_type& }}} I found 2 possibly related problems, which I think are bugs: 1. The typedef `iterator_adaptor<>::pointer` is incorrect. Specifically, it produces a plain pointer, when I expect it to produce `Base_Iterator::pointer`. 2. There is something wrong with `iterator_adaptor<>::operator->()`. I would expect `Derived_Iterator` to behave exactly like `Base_Iterator`. So, if I don't explicitly define `Derived_Iterator::operator->()`, I would expect the version inherited from `iterator_adaptor<>` to do something similar to: {{{ Base_Iterator operator->() const { return this->base(); } }}} But this doesn't happen. If I put in this definition explicitly in `Derived_Iterator`, then the code works." Bugs new To Be Determined iterator Boost 1.57.0 Problem