
Is there any interest in pointer wrapper similar to scoped_ptr or shared_ptr which can be used for pointer member variable which can the referenced value can't be modified by non const functions? This class wouldn't be responsible for any memory management and could have a shared pointer version as well. For example: template<typename T> class protected_ptr { T * ptr; // ... T * get(); const T * get() const; // ... including operator* and operator-> } class Foo { protected_ptr<Bar> _bar; void Func1() { _bar->NonConstFunc(); _bar->ConstFunc(); } void Func2() const { _bar->NonConstFunc(); // Compile error _bar->ConstFunc(); // Ok } } Ray Logel