1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  | #pragma once 
 |  #include "jobject.hpp" 
 |  template<class Ty> 
 |  class JPtr : 
 |      public JObject 
 |  { 
 |  public: 
 |      JPtr(Ty* impl) :impl(impl) {} 
 |      ~JPtr() { 
 |          ((JObject*)impl)->Release(); 
 |      } 
 |  public: 
 |      Ty* operator ->() { 
 |          return impl; 
 |      } 
 |  public: 
 |      void Release() {} 
 |  private: 
 |      Ty* impl; 
 |  }; 
 |  
  |