Your Ptr
class has a non-const pointer member. You will not be able to assign a const Base*
without some unsafe casts. Do you want that? Try this instead:
template <class f, class g>
class Ptr
{
public:
Ptr(){};
Ptr(Base<f,g,Ptr<f,g> > const* a) { in = *a; }
Base<f,g,Ptr<f,g> >* operator->()
{
return ∈
};
Base<f,g,Ptr<f,g> >& operator*()
{
return in;
};
private:
Base<f,g,Ptr<f,g> > in;
};
dirkgently
2009-03-10 17:04:44