102 template<
class C>
class P {
110 C *operator ->()
const;
111 template<
class D>
operator D *()
const {
113 return static_cast<D *
>((C *)object_);
115 bool operator ==(C *c)
const;
116 bool operator !=(C *c)
const;
117 bool operator !()
const;
118 bool operator <(
P<C> &p)
const {
return (
size_t)object_ < (size_t)p.object_; }
119 bool operator <(
const P<C> &p)
const {
return (
size_t)object_ < (size_t)p.object_; }
120 template<
class D>
bool operator ==(
P<D> &p)
const;
121 template<
class D>
bool operator !=(
P<D> &p)
const;
122 P<C> &operator =(C *c);
124 template<
class D>
P<C> &operator =(
const P<D> &p);
131 template<
class C>
friend class P;
135 uint32 __vfptr_padding_Object_;
137 int32
volatile refCount_;
139 #ifdef WITH_DETAIL_OID
145 virtual void decRef();
146 #ifdef WITH_DETAIL_OID
147 uint64 get_detail_oid()
const {
return detail_oid_; }
154 void set_detail_oid(uint64 detail_oid);
168 #include "base.tpl.cpp"