Theolizer  Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
unordered_set.h
[詳解]
1 //############################################################################
2 /*!
3  @brief std::unordered_set<>のシリアライズ
4  @ingroup SerializationStl
5  @file unordered_set.h
6  @author Yoshinori Tahara(Theoride Technology)
7  @date 2017/02/07 Created
8 */
9 /*
10  © 2016 Theoride Technology (http://theolizer.com/) All Rights Reserved.
11  "Theolizer" is a registered trademark of Theoride Technology.
12 
13  "Theolizer" License
14  In the case where you are in possession of a valid “Theolizer” License,
15  you may use this file in accordance with the terms and conditions of
16  the use license determined by Theoride Technology.
17 
18  General Public License Version 3 ("GPLv3")
19  You may use this file in accordance with the terms and conditions of
20  GPLv3 published by Free Software Foundation.
21  Please confirm the contents of GPLv3 at https://www.gnu.org/licenses/gpl.txt .
22  A copy of GPLv3 is also saved in a LICENSE.TXT file.
23 
24  商用ライセンス
25  あなたが有効なTheolizer商用ライセンスを保持している場合、
26  セオライド テクノロジーの定める使用許諾書の条件に従って、
27  このファイルを取り扱うことができます。
28 
29  General Public License Version 3(以下GPLv3)
30  Free Software Foundationが公表するGPLv3の使用条件に従って、
31  あなたはこのファイルを取り扱うことができます。
32  GPLv3の内容を https://www.gnu.org/licenses/gpl.txt にて確認して下さい。
33  またGPLv3のコピーをLICENSE.TXTファイルにおいてます。
34 */
35 //############################################################################
36 
37 #if !defined(THEOLIZER_INTERNAL_UNORDERED_SET_H)
38 #define THEOLIZER_INTERNAL_UNORDERED_SET_H
39 
40 #ifndef THEOLIZER_INTERNAL_DOXYGEN
41 
42 //############################################################################
43 // Begin
44 //############################################################################
45 
46 #include <unordered_set>
47 #include "serializer.h"
48 #include "internal/containers.h"
49 
50 THEOLIZER_PROVIDED_BY("Theoride Technology");
51 
52 //############################################################################
53 // std::unordered_set<>対応
54 //############################################################################
55 
56 // ***************************************************************************
57 // 手動コード展開
58 // ***************************************************************************
59 
60 #define THEOLZIER_INTERNAL_CONTAINER_PARAMETER \
61  template<class Key, class Hash, class Pred, class Alloc>
62 #define THEOLZIER_INTERNAL_CONTAINER_NAME std::unordered_set
63 #define THEOLZIER_INTERNAL_CONTAINER_ARGUMENT Key, Hash, Pred, Alloc
64 #define THEOLZIER_INTERNAL_CONTAINER_UNIQUE unordered_setTheolizer
65 #define THEOLIZER_INTERNAL_IS_UNORDERED
66 #include "internal/container_set.inc"
67 #undef THEOLIZER_INTERNAL_IS_UNORDERED
68 
69 // ***************************************************************************
70 // 自動生成コード
71 // ***************************************************************************
72 
73 #ifdef THEOLIZER_WRITE_CODE
74 
75 #define THEOLIZER_GENERATED_LAST_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kLastVersionNo,1)
76 #define THEOLIZER_GENERATED_CLASS_TYPE THEOLIZER_INTERNAL_UNPAREN(std::unordered_set<Key, Hash, Pred, Alloc>)
77 #define THEOLIZER_GENERATED_PARAMETER_LIST template<class Key, class Hash, class Pred, class Alloc>
78 #define THEOLIZER_GENERATED_UNIQUE_NAME unordered_setTheolizer
79 
80 // ---<<< Version.1 >>>---
81 
82 #define THEOLIZER_GENERATED_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kVersionNo,1)
83 #define THEOLIZER_GENERATED_CLASS_NAME()\
84  THEOLIZER_INTERNAL_TEMPLATE_NAME((u8"std::unordered_set",Key,Hash,Pred,Alloc))
85 #include <theolizer/internal/version_manual.inc>
86 #undef THEOLIZER_GENERATED_VERSION_NO
87 
88 #endif//THEOLIZER_WRITE_CODE
89 
90 // ***************************************************************************
91 // 定義したマクロの解放
92 // ***************************************************************************
93 
94 #undef THEOLZIER_INTERNAL_CONTAINER_PARAMETER
95 #undef THEOLZIER_INTERNAL_CONTAINER_NAME
96 #undef THEOLZIER_INTERNAL_CONTAINER_ARGUMENT
97 #undef THEOLZIER_INTERNAL_CONTAINER_UNIQUE
98 
99 #undef THEOLIZER_INTERNAL_FULL_NAME
100 
101 //############################################################################
102 // std::unordered_multiset<>対応
103 //############################################################################
104 
105 // ***************************************************************************
106 // 手動コード展開
107 // ***************************************************************************
108 
109 #define THEOLZIER_INTERNAL_CONTAINER_PARAMETER \
110  template<class Key, class Hash, class Pred, class Alloc>
111 #define THEOLZIER_INTERNAL_CONTAINER_NAME std::unordered_multiset
112 #define THEOLZIER_INTERNAL_CONTAINER_ARGUMENT Key, Hash, Pred, Alloc
113 #define THEOLZIER_INTERNAL_CONTAINER_UNIQUE unordered_multisetTheolizer
114 #define THEOLIZER_INTERNAL_IS_UNORDERED
115 #define THEOLIZER_INTERNAL_IS_MULTI
116 #include "internal/container_set.inc"
117 #undef THEOLIZER_INTERNAL_IS_MULTI
118 #undef THEOLIZER_INTERNAL_IS_UNORDERED
119 
120 // ***************************************************************************
121 // 自動生成コードの雛形
122 // ***************************************************************************
123 
124 //----------------------------------------------------------------------------
125 // 通常用
126 //----------------------------------------------------------------------------
127 
128 #ifdef THEOLIZER_WRITE_CODE
129 
130 #define THEOLIZER_GENERATED_LAST_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kLastVersionNo,1)
131 #define THEOLIZER_GENERATED_CLASS_TYPE THEOLIZER_INTERNAL_UNPAREN(std::unordered_multiset<Key, Hash, Pred, Alloc>)
132 #define THEOLIZER_GENERATED_PARAMETER_LIST template<class Key, class Hash, class Pred, class Alloc>
133 #define THEOLIZER_GENERATED_UNIQUE_NAME unordered_multisetTheolizer
134 
135 // ---<<< Version.1 >>>---
136 
137 #define THEOLIZER_GENERATED_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kVersionNo,1)
138 #define THEOLIZER_GENERATED_CLASS_NAME()\
139  THEOLIZER_INTERNAL_TEMPLATE_NAME((u8"std::unordered_multiset",Key,Hash,Pred,Alloc))
140 #include <theolizer/internal/version_manual.inc>
141 #undef THEOLIZER_GENERATED_VERSION_NO
142 
143 #endif//THEOLIZER_WRITE_CODE
144 
145 // ***************************************************************************
146 // 定義したマクロの解放
147 // ***************************************************************************
148 
149 #undef THEOLZIER_INTERNAL_CONTAINER_PARAMETER
150 #undef THEOLZIER_INTERNAL_CONTAINER_NAME
151 #undef THEOLZIER_INTERNAL_CONTAINER_ARGUMENT
152 #undef THEOLZIER_INTERNAL_CONTAINER_UNIQUE
153 
154 #undef THEOLIZER_INTERNAL_FULL_NAME
155 
156 //############################################################################
157 // End
158 //############################################################################
159 
160 #endif // THEOLIZER_INTERNAL_DOXYGEN
161 
162 #endif // THEOLIZER_INTERNAL_UNORDERED_SET_H
Theolizerライブラリの標準コンテナ・サポート
#define THEOLIZER_PROVIDED_BY(dVendor)
ソース自動生成制御
TheolizerライブラリのAPI部