gatelib  2.1
g_cont_ref_custom.h
1 #pragma once
2 
3 #include "g_cont_ref_base.h"
4 
5 namespace g
6 {
7 namespace cont
8 {
9 template < class T > class ref_custom : public ref_base<T>
10 {
11 private:
12  ref_custom(const ref_custom<T>&){}
13 protected:
14  ref_custom(){ G_VERBOSE_MSG_L5("ref_custom<T>::ref_custom()"); }
15 
16 protected:
17  void mRefTake ( const ref_custom& other ) { G_VERBOSE_MSG_L5("ref_custom::mRefTake(ref_custom&)"); ref_base<T>::mRefTake(other); }
18 
19 #if G_AUTOPTION_ON_MSVC > 0
20  template < class O > void mRefTake ( const ref_custom<O>& other ) { G_VERBOSE_MSG_L5("ref_custom::mRefTake(ref_custom<O>&)"); ref_base<T>::mRefTake<O>(other); }
21  template < class O > bool mRefTakeTryDynamically ( ref_base<O>& other ) { return ref_base<T>::mRefTakeTryDynamically<O>(other); }
22 #else
23  template < class O > void mRefTake ( const ref_custom<O>& other ) { G_VERBOSE_MSG_L5("ref_custom::mRefTake(ref_custom<O>&)"); ref_base<T>::mRefTake ( other ); }
24  template < class O > bool mRefTakeTryDynamically ( ref_base<O>& other ) { return ref_base<T>::mRefTakeTryDynamically(other); }
25 #endif
26 
27  inline T* mGetObjP ( ) { return ref_base<T>::mGetObjP(); }
28  inline const T* mGetObjP ( ) const { return ref_base<T>::mGetObjP(); }
29 };
30 
31 }//namespace g
32 }//namespace cont
33 
34 
35 
Definition: g.mthread.ThreadSimpleEvent.h:5