BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
SPtr< T > Class Template Reference

#include <pointer.h>

Public Member Functions

T * operator-> () const
bool operator== (const T *pobj) const
bool operator!= (const T *pobj) const
bool operator== (const SPtr< T > &spobj) const
bool operator!= (const SPtr< T > &spobj) const
 SPtr (T *pobj=0)
 SPtr (const SPtr &ptr)
SPtroperator= (const SPtr &ptr)
 ~SPtr ()

Detailed Description

template<typename T>
class SPtr< T >

Definition at line 22 of file pointer.h.

Constructor & Destructor Documentation

◆ SPtr() [1/2]

template<typename T>
SPtr< T >::SPtr ( T * pobj = 0)
inline

Definition at line 31 of file pointer.h.

31 : pObj( pobj ) {
32 if ( pObj ) { pObj->count++; }
33 }
Definition pointer.h:22

◆ SPtr() [2/2]

template<typename T>
SPtr< T >::SPtr ( const SPtr< T > & ptr)
inline

Definition at line 34 of file pointer.h.

34 : pObj( ptr.pObj ) {
35 if ( pObj ) { pObj->count++; }
36 }

◆ ~SPtr()

template<typename T>
SPtr< T >::~SPtr ( )
inline

Definition at line 45 of file pointer.h.

45 {
46 if ( pObj && --( pObj->count ) == 0 ) { delete pObj; }
47 }

Member Function Documentation

◆ operator!=() [1/2]

template<typename T>
bool SPtr< T >::operator!= ( const SPtr< T > & spobj) const
inline

Definition at line 29 of file pointer.h.

29{ return spobj.pObj != pObj; }

◆ operator!=() [2/2]

template<typename T>
bool SPtr< T >::operator!= ( const T * pobj) const
inline

Definition at line 26 of file pointer.h.

26{ return pobj != pObj; }

◆ operator->()

template<typename T>
T * SPtr< T >::operator-> ( ) const
inline

Definition at line 24 of file pointer.h.

24{ return pObj; }

◆ operator=()

template<typename T>
SPtr & SPtr< T >::operator= ( const SPtr< T > & ptr)
inline

Definition at line 38 of file pointer.h.

38 {
39 if ( this == &ptr ) { return *this; }
40 if ( pObj && --( pObj->count ) == 0 ) { delete pObj; }
41 if ( ( pObj = ptr.pObj ) ) { pObj->count++; }
42 return *this;
43 }

◆ operator==() [1/2]

template<typename T>
bool SPtr< T >::operator== ( const SPtr< T > & spobj) const
inline

Definition at line 28 of file pointer.h.

28{ return spobj.pObj == pObj; }

◆ operator==() [2/2]

template<typename T>
bool SPtr< T >::operator== ( const T * pobj) const
inline

Definition at line 25 of file pointer.h.

25{ return pobj == pObj; }

The documentation for this class was generated from the following file: