"Hickman, Greg"
I have a class that holds a container of pointers to polymorphic Base classes. I'd like clients who iterate over those Bases using a mutating iterator type to be able to call non-const Base class member functions (but I do not want those clients to be able to replace the Base* directly). I'd also like clients who iterate using a const_iterator type to be able to call only const Base class member functions.
In the following test code, I've attempted to use boost::iterator_adaptor to create a const iterator with these properties, but the const_iterator still allows calls to non-const operations. Can anyone help me see where I've gone wrong?
Umm, right....
#include
#include #include <iostream> #include <list> class Base : private boost::noncopyable { public: virtual ~Base() {} virtual void foo() const = 0; here?------------------^^^^^ };
HTH, Dave