Theolizer  Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
forward_list.h
[詳解]
1 //############################################################################
2 /*!
3  @brief std::forward_list<>のシリアライズ
4  @ingroup SerializationStl
5  @file forward_list.h
6  @author Yoshinori Tahara(Theoride Technology)
7  @date 2017/02/02 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_FORWARD_LIST_H)
38 #define THEOLIZER_INTERNAL_FORWARD_LIST_H
39 
40 #ifndef THEOLIZER_INTERNAL_DOXYGEN
41 
42 //############################################################################
43 // Begin
44 //############################################################################
45 
46 #include <forward_list>
47 #include "serializer.h"
48 #include "internal/containers.h"
49 
50 THEOLIZER_PROVIDED_BY("Theoride Technology");
51 
52 //############################################################################
53 // std::deque<>対応
54 //############################################################################
55 
56 // ***************************************************************************
57 // 手動コード展開
58 // ***************************************************************************
59 
60 #define THEOLZIER_INTERNAL_CONTAINER_PARAMETER template<class T, class Alloc>
61 #define THEOLZIER_INTERNAL_CONTAINER_NAME std::forward_list
62 #define THEOLZIER_INTERNAL_CONTAINER_ARGUMENT T, Alloc
63 #define THEOLZIER_INTERNAL_CONTAINER_UNIQUE forward_listTheolizer
64 #define THEOLIZER_INTERNAL_FORWARD_LIST
65 #include "internal/container_no_size.inc"
66 #undef THEOLIZER_INTERNAL_FORWARD_LIST
67 
68 // ***************************************************************************
69 // 自動生成コード
70 // ***************************************************************************
71 
72 #ifdef THEOLIZER_WRITE_CODE
73 
74 #define THEOLIZER_GENERATED_LAST_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kLastVersionNo,1)
75 #define THEOLIZER_GENERATED_CLASS_TYPE THEOLIZER_INTERNAL_UNPAREN(std::forward_list<T, Alloc>)
76 #define THEOLIZER_GENERATED_PARAMETER_LIST template<class T, class Alloc>
77 #define THEOLIZER_GENERATED_UNIQUE_NAME forward_listTheolizer
78 
79 // ---<<< Version.1 >>>---
80 
81 #define THEOLIZER_GENERATED_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kVersionNo,1)
82 #define THEOLIZER_GENERATED_CLASS_NAME()\
83  THEOLIZER_INTERNAL_TEMPLATE_NAME((u8"std::forward_list",T,Alloc))
84 #include <theolizer/internal/version_manual.inc>
85 #undef THEOLIZER_GENERATED_VERSION_NO
86 
87 #endif//THEOLIZER_WRITE_CODE
88 
89 // ***************************************************************************
90 // 定義したマクロの解放
91 // ***************************************************************************
92 
93 #undef THEOLZIER_INTERNAL_CONTAINER_PARAMETER
94 #undef THEOLZIER_INTERNAL_CONTAINER_NAME
95 #undef THEOLZIER_INTERNAL_CONTAINER_ARGUMENT
96 #undef THEOLZIER_INTERNAL_CONTAINER_UNIQUE
97 
98 #undef THEOLIZER_INTERNAL_FULL_NAME
99 
100 //############################################################################
101 // 被ポインタ用(theolizer::ForwardListPointee<>)
102 //############################################################################
103 
104 // ***************************************************************************
105 // theolizer::ForwardListPointee<>
106 // std::forward_list<>の単純な派生クラス
107 // 要素をPointeeとして処理する
108 // ***************************************************************************
109 
110 namespace theolizer
111 {
112 
113 template<class T, class Alloc=std::allocator<T> >
114 class THEOLIZER_ANNOTATE(CS) ForwardListPointee : public std::forward_list<T, Alloc>
115 {
116 public:
117  using std::forward_list<T, Alloc>::forward_list;
118 };
119 
120 } // namespace theolizer
121 
122 // ***************************************************************************
123 // 手動コード展開
124 // ***************************************************************************
125 
126 #define THEOLZIER_INTERNAL_CONTAINER_PARAMETER template<class T, class Alloc>
127 #define THEOLZIER_INTERNAL_CONTAINER_NAME theolizer::ForwardListPointee
128 #define THEOLZIER_INTERNAL_CONTAINER_ARGUMENT T, Alloc
129 #define THEOLZIER_INTERNAL_CONTAINER_UNIQUE ForwardListPointeeTheolizer
130 #define THEOLIZER_INTERNAL_FORWARD_LIST
131 #define THEOLIZER_INTERNAL_POINTEE
132 #include "internal/container_no_size.inc"
133 #undef THEOLIZER_INTERNAL_POINTEE
134 #undef THEOLIZER_INTERNAL_FORWARD_LIST
135 
136 // ***************************************************************************
137 // 自動生成コード
138 // ***************************************************************************
139 
140 #ifdef THEOLIZER_WRITE_CODE
141 
142 #define THEOLIZER_GENERATED_LAST_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kLastVersionNo,1)
143 #define THEOLIZER_GENERATED_CLASS_TYPE THEOLIZER_INTERNAL_UNPAREN(theolizer::ForwardListPointee<T, Alloc>)
144 #define THEOLIZER_GENERATED_PARAMETER_LIST template<class T, class Alloc>
145 #define THEOLIZER_GENERATED_UNIQUE_NAME ForwardListPointeeTheolizer
146 
147 // ---<<< Version.1 >>>---
148 
149 #define THEOLIZER_GENERATED_VERSION_NO THEOLIZER_INTERNAL_DEFINE(kVersionNo,1)
150 #define THEOLIZER_GENERATED_CLASS_NAME()\
151  THEOLIZER_INTERNAL_TEMPLATE_NAME((u8"theolizer::ForwardListPointee",T,Alloc))
152 #include <theolizer/internal/version_manual.inc>
153 #undef THEOLIZER_GENERATED_VERSION_NO
154 
155 #endif//THEOLIZER_WRITE_CODE
156 
157 // ***************************************************************************
158 // 定義したマクロの解放
159 // ***************************************************************************
160 
161 #undef THEOLZIER_INTERNAL_CONTAINER_PARAMETER
162 #undef THEOLZIER_INTERNAL_CONTAINER_NAME
163 #undef THEOLZIER_INTERNAL_CONTAINER_ARGUMENT
164 #undef THEOLZIER_INTERNAL_CONTAINER_UNIQUE
165 
166 #undef THEOLIZER_INTERNAL_FULL_NAME
167 
168 //############################################################################
169 // End
170 //############################################################################
171 
172 #endif // THEOLIZER_INTERNAL_DOXYGEN
173 
174 #endif // THEOLIZER_INTERNAL_FORWARD_LIST_H
Theolizerライブラリの標準コンテナ・サポート
theolizer名前空間
Definition: base.h:53
#define THEOLIZER_PROVIDED_BY(dVendor)
ソース自動生成制御
TheolizerライブラリのAPI部