7 Aug
2007
7 Aug
'07
3:51 p.m.
On Mon, 6 Aug 2007, Mark Ruzon wrote:
I have defined an iterator adaptor called skip_iterator. I found that I have to write:
skip_iterator() : skip_iterator::iterator_adaptor_(0), m(1) {}
rather than
skip_iterator() : iterator_adaptor_(0), m(1) {}
even though iterator_adaptor_ is a protected typedef inside iterator_adaptor. Will someone explain why I have to qualify the name?
That is because it is inherited from a class template (and skip_iterator is a class template too, right?). Until the base class template is instantiated, the compiler doesn't know what's exactly inherited, so we need to give it some hints as to where that symbol comes from. -- François Duranleau LIGUM, Université de Montréal