10 #define ThePEG_RCPtr_H
14 #include "ReferenceCounted.h"
16 #include "PtrTraits.h"
96 template <
typename UPtr>
156 if (
ptr == p.
ptr )
return *
this;
167 template <
typename UPtr>
180 template <
typename UPtr>
183 if (
ptr == up )
return *
this;
194 template <
typename UPtr>
197 if (
ptr == up )
return *
this;
237 template <
typename UPtr>
245 template <
typename UPtr>
254 return (
ptr && p.
ptr &&
ptr->uniqueId != p.
ptr->uniqueId ) ?
262 return (
ptr && p &&
ptr->uniqueId != p->uniqueId ) ?
263 ptr->uniqueId < p->uniqueId :
ptr < p;
274 operator T * ()
const {
return ptr; }
314 template <
typename T>
350 template <
typename UPtr>
368 if (
ptr == p.
ptr )
return *
this;
379 template <
typename UPtr>
392 template <
typename UPtr>
396 if (
ptr == up )
return *
this;
436 template <
typename UPtr>
442 template <
typename UPtr>
449 return (
ptr && p.
ptr &&
ptr->uniqueId != p.
ptr->uniqueId ) ?
457 return (
ptr && p &&
ptr->uniqueId != p->uniqueId ) ?
458 ptr->uniqueId < p->uniqueId :
ptr < p;
469 operator const T * ()
const {
return ptr; }
508 template <
typename T>
544 template <
typename UPtr>
569 template <
typename UPtr>
579 template <
typename UPtr>
589 template <
typename UPtr>
618 template <
typename UPtr>
624 template <
typename UPtr>
631 return (
ptr && p.
ptr &&
ptr->uniqueId != p.
ptr->uniqueId ) ?
639 return (
ptr && p &&
ptr->uniqueId != p->uniqueId ) ?
640 ptr->uniqueId < p->uniqueId :
ptr < p;
651 operator T * ()
const {
return ptr; }
680 template <
typename T>
716 template <
typename UPtr>
741 template <
typename UPtr>
751 template <
typename UPtr>
781 template <
typename UPtr>
787 template <
typename UPtr>
794 return (
ptr && p.
ptr &&
ptr->uniqueId != p.
ptr->uniqueId ) ?
802 return (
ptr && p &&
ptr->uniqueId != p->uniqueId ) ?
803 ptr->uniqueId < p->uniqueId :
ptr < p;
814 operator const T * ()
const {
return ptr; }
838 template <
typename T>
879 template <
typename UPtr>
889 template <
typename UPtr>
906 static const bool reference_counted =
true;
913 template <
typename T>
935 return p.operator->();
960 template <
typename UPtr>
970 template <
typename UPtr>
987 static const bool reference_counted =
true;
994 template <
typename T>
1016 return p.operator->();
1027 template <
typename UPtr>
1053 static const bool reference_counted =
false;
1060 template <
typename T>
1082 return p.operator->();
1093 template <
typename UPtr>
1103 template <
typename UPtr>
1120 static const bool reference_counted =
false;
1133 template <
typename T>
1143 template <
typename T>