Theolizer
Version.1.2.0
serializer for C++ / Do you want to update your classes easily ?
7.usage_individual.h
[詳解]
1
//############################################################################
2
/*!
3
@brief ドキュメント・ファイル-使用方法(個別)
4
@ingroup Documents
5
@file 7.usage_individual.h
6
@author Yoshinori Tahara
7
@date 2016/11/12 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
/*!
38
39
@page UsageIndividual 使用方法(個別)
40
41
ここでは、Theolizerの以下の各機能について説明します。
42
43
@subpage BasicProcess \n
44
@subpage ClassVariation \n
45
@subpage EnumVariation \n
46
@subpage ObjectTracking \n
47
@subpage Destinations \n
48
@subpage SupportSTL \n
49
@subpage ChangingEnum \n
50
@subpage ChangingClass \n
51
@subpage ErrorReport \n
52
53
*/
54
55
/*!
56
@page BasicProcess THEOLIZER_PROCESS()の使用方法
57
58
ここでは、THEOLIZER_PROCESS()による保存/回復の網羅的な使用例(自動テスト)について説明します。<br>
59
クラスは単純なものを使います。クラスの詳細な使い方は@ref ClassVariation で説明します。<br>
60
ここではポインタ型とオーナー・ポインタ型の説明と自動テストは行いません。これらについては@ref ObjectTracking で行います。<br>
61
62
<br>
63
//############################################################################
64
@section DefinitionEnumClass 1.クラスとenum型の定義
65
//############################################################################
66
67
<b>source/reference_and_test/basic/test_basic_process.h</b> で、次のようなクラスとenum型を定義しています。
68
69
enum型は従来のenum型と、C++11で追加されたscoped enum型の2つをテストします。
70
71
@dontinclude test_basic_process.h
72
@skip NormalEnum
73
@until };
74
@until };
75
76
クラス型はテストを容易にするため、非侵入型完全自動を用いています。<br>
77
同様にメンバ変数をpublicにしたいのでstructを用いています。<br>
78
(幾つか制約事項があります。@ref ClassVariation にて説明します。)<br>
79
また、自動テストの記述を簡単化するため、下記を定義しています。
80
- 初期化用のコンストラクタ
81
- 比較演算子(operator==)
82
- std::ostreamへのフレンド出力演算子(operator<<)
83
84
@skip struct ClassBasicTest
85
@until };
86
87
<br>
88
//############################################################################
89
@section TestBasicProcess 2.網羅的な使用例(自動テスト)の説明
90
//############################################################################
91
以下のアイテムを保存し、回復して保存した値と同じ値が回復できたことを、全てのシリアライザの全ての書式指定オプションに対して確認しています。(@ref TestProgram 参照)
92
93
- C++言語がサポートする基本型全て<br>
94
char, signed char, unsigned char, wchar_t, u16char, u32char,<br>
95
short, int, long, long long,<br>
96
unsigned short, unsigned int, unsigned long, unsigned long long,<br>
97
float, double, long double<br>
98
<br>
99
100
- C++11規格にて定義されている文字列型全て<br>
101
std::string, std::wstring, std::u16string, std::u32string<br>
102
C言語文字列(例:"foo")はchar型変数の配列として保存されます。<br>
103
104
<b>1バイト文字列リテラルは要注意事項があります。</b><br>
105
Visual Studioの1バイト文字列リテラルはShift-JIS等のNarrow文字列です。UTF-8ではありません。<br>
106
Theolizerは1バイト文字列はUTF-8として取り扱いますので、u8"foo"のように必ずu8プリフィクスを付けて下さい。<br>
107
108
- enum型<br>
109
従来のenum型、scoped enum型<br>
110
<br>
111
112
- クラス型<br>
113
ここでは使い方を示すための1種類のみ。細かいテストは@ref ClassVariation にて実施します。<br>
114
<br>
115
116
- 右辺値(リテラルや式)が保存でき、同じ型の変数へ回復できること<br>
117
int, long, long long,<br>
118
unsigned int, unsigned long, unsigned long long,<br>
119
float, double, long double,<br>
120
std::string, std::wstring, std::u16string, std::u32string<br>
121
<br>
122
123
- 配列
124
上記全ての型に対する1次元、2次元、3次元配列についてテストします。
125
saveTestArray(), loadTestArray()と言う関数テンプレトを使っています。
126
型と最下位次元の要素数を指定すると、その型の1次元、2次元、3次元配列を生成して保存し、回復後の値をチェックします。
127
設定する値とチェックする値は、それぞれの関数呼び出し時にラムダ式で与えています。
128
129
<b>保存処理(source/reference_and_test/basic/test_basic_process.cpp)</b><br>
130
@snippet basic/test_basic_process.cpp saveBasicProcess
131
132
<b>多次元配列の保存処理(source/reference_and_test/basic/common.h)</b><br>
133
@snippet basic/common.h saveTestArray
134
135
<b>回復処理(source/reference_and_test/basic/test_basic_process.cpp)</b><br>
136
@snippet basic/test_basic_process.cpp loadBasicProcess
137
138
<b>多次元配列の回復処理(source/reference_and_test/basic/common.h)</b><br>
139
@snippet basic/common.h loadTestArray
140
141
*/
Theolizer
source
document
ja
7.usage_individual.h
© 2016
Theoride Technology
All Rights Reserved. "Theolizer" is a registered trademark of Theoride Technology.
構築:
1.8.12