GC(参照カウント方式)に使えるポインタオブジェクトで
オブジェクトのconst修飾が参照先のconst修飾に対応した
クラスってないでしょうか

Boost流だとこんな↓感じ?

template<typename T>
class my_shared_ptr : protected boost::shared_ptr<T>
{
public:
 const T * operator->() const { return __super::operator->(); }
 T * operator->() { return __super::operator->(); }

 // other functions implementation...
};

おねがいします