CTR-Pia  5.4.3
Game Communication Engine
 全て クラス ネームスペース 関数 変数 型定義 列挙型 列挙型の値 ページ
reckoning_VoidMemberConcealer.h
1 /*--------------------------------------------------------------------------------*
2  Copyright (C)Nintendo All rights reserved.
3 
4  These coded instructions, statements, and computer programs contain proprietary
5  information of Nintendo and/or its licensed developers and are protected by
6  national and international copyright laws. They may not be disclosed to third
7  parties or copied or duplicated in any form, in whole or in part, without the
8  prior written consent of Nintendo.
9 
10  The content herein is highly confidential and should be handled accordingly.
11  *--------------------------------------------------------------------------------*/
12 
13 
14 #pragma once
15 
16 #include <nn/pia/reckoning/reckoning_Definitions.h>
17 
18 
19 namespace nn
20 {
21 namespace pia
22 {
23 namespace reckoning
24 {
25 
26 /*
27 n1589:memo
28 T2にvoidを指定した時に余計なメモリを使わないためのラッパーテンプレートです。
29 */
30 
31 //! @cond PRIVATE
32 template <typename T1, typename T2>
33 struct VoidMemberConcealer
34 {
35 public:
36  VoidMemberConcealer()
37  : m_T1(), m_T2()
38  {
39  }
40  T1* GetT1Ptr()
41  {
42  return &m_T1;
43  }
44  T2* GetT2Ptr()
45  {
46  return &m_T2;
47  }
48 
49 private:
50  T1 m_T1;
51  T2 m_T2;
52 };
53 
54 template <typename T1>
55 struct VoidMemberConcealer<T1, void>
56 {
57 public:
58  VoidMemberConcealer()
59  : m_T1()
60  {
61  }
62  T1* GetT1Ptr()
63  {
64  return &m_T1;
65  }
66  void* GetT2Ptr()
67  {
68  return NULL;
69  }
70 
71 private:
72  T1 m_T1;
73 };
74 //! @endcond
75 }
76 }
77 } // end of namespace nn::pia::reckoning