|
Boost Users : |
From: François Duranleau (duranlef_at_[hidden])
Date: 2007-08-07 11:51:23
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
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net