QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
QxSerializeQDataStream_std_tuple.h
Go to the documentation of this file.
1/****************************************************************************
2**
3** https://www.qxorm.com/
4** Copyright (C) 2013 Lionel Marty (contact@qxorm.com)
5**
6** This file is part of the QxOrm library
7**
8** This software is provided 'as-is', without any express or implied
9** warranty. In no event will the authors be held liable for any
10** damages arising from the use of this software
11**
12** Commercial Usage
13** Licensees holding valid commercial QxOrm licenses may use this file in
14** accordance with the commercial license agreement provided with the
15** Software or, alternatively, in accordance with the terms contained in
16** a written agreement between you and Lionel Marty
17**
18** GNU General Public License Usage
19** Alternatively, this file may be used under the terms of the GNU
20** General Public License version 3.0 as published by the Free Software
21** Foundation and appearing in the file 'license.gpl3.txt' included in the
22** packaging of this file. Please review the following information to
23** ensure the GNU General Public License version 3.0 requirements will be
24** met : http://www.gnu.org/copyleft/gpl.html
25**
26** If you are unsure which license is appropriate for your use, or
27** if you have questions regarding the use of this file, please contact :
28** contact@qxorm.com
29**
30****************************************************************************/
31
32#ifndef _QX_SERIALIZE_QDATASTREAM_STD_TUPLE_H_
33#define _QX_SERIALIZE_QDATASTREAM_STD_TUPLE_H_
34
35#ifdef _MSC_VER
36#pragma once
37#endif
38
46#include <QtCore/qdatastream.h>
47
48template <typename T0, typename T1>
49QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1> & t)
50{
51 stream << std::get<0>(t);
52 stream << std::get<1>(t);
53 return stream;
54}
55
56template <typename T0, typename T1, typename T2>
57QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2> & t)
58{
59 stream << std::get<0>(t);
60 stream << std::get<1>(t);
61 stream << std::get<2>(t);
62 return stream;
63}
64
65template <typename T0, typename T1, typename T2, typename T3>
66QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3> & t)
67{
68 stream << std::get<0>(t);
69 stream << std::get<1>(t);
70 stream << std::get<2>(t);
71 stream << std::get<3>(t);
72 return stream;
73}
74
75template <typename T0, typename T1, typename T2, typename T3, typename T4>
76QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4> & t)
77{
78 stream << std::get<0>(t);
79 stream << std::get<1>(t);
80 stream << std::get<2>(t);
81 stream << std::get<3>(t);
82 stream << std::get<4>(t);
83 return stream;
84}
85
86template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
87QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4, T5> & t)
88{
89 stream << std::get<0>(t);
90 stream << std::get<1>(t);
91 stream << std::get<2>(t);
92 stream << std::get<3>(t);
93 stream << std::get<4>(t);
94 stream << std::get<5>(t);
95 return stream;
96}
97
98template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
99QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4, T5, T6> & t)
100{
101 stream << std::get<0>(t);
102 stream << std::get<1>(t);
103 stream << std::get<2>(t);
104 stream << std::get<3>(t);
105 stream << std::get<4>(t);
106 stream << std::get<5>(t);
107 stream << std::get<6>(t);
108 return stream;
109}
110
111template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
112QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4, T5, T6, T7> & t)
113{
114 stream << std::get<0>(t);
115 stream << std::get<1>(t);
116 stream << std::get<2>(t);
117 stream << std::get<3>(t);
118 stream << std::get<4>(t);
119 stream << std::get<5>(t);
120 stream << std::get<6>(t);
121 stream << std::get<7>(t);
122 return stream;
123}
124
125template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
126QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8> & t)
127{
128 stream << std::get<0>(t);
129 stream << std::get<1>(t);
130 stream << std::get<2>(t);
131 stream << std::get<3>(t);
132 stream << std::get<4>(t);
133 stream << std::get<5>(t);
134 stream << std::get<6>(t);
135 stream << std::get<7>(t);
136 stream << std::get<8>(t);
137 return stream;
138}
139
140template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
141QDataStream & operator<< (QDataStream & stream, const std::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> & t)
142{
143 stream << std::get<0>(t);
144 stream << std::get<1>(t);
145 stream << std::get<2>(t);
146 stream << std::get<3>(t);
147 stream << std::get<4>(t);
148 stream << std::get<5>(t);
149 stream << std::get<6>(t);
150 stream << std::get<7>(t);
151 stream << std::get<8>(t);
152 stream << std::get<9>(t);
153 return stream;
154}
155
156template <typename T0, typename T1>
157QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1> & t)
158{
159 stream >> std::get<0>(t);
160 stream >> std::get<1>(t);
161 return stream;
162}
163
164template <typename T0, typename T1, typename T2>
165QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2> & t)
166{
167 stream >> std::get<0>(t);
168 stream >> std::get<1>(t);
169 stream >> std::get<2>(t);
170 return stream;
171}
172
173template <typename T0, typename T1, typename T2, typename T3>
174QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3> & t)
175{
176 stream >> std::get<0>(t);
177 stream >> std::get<1>(t);
178 stream >> std::get<2>(t);
179 stream >> std::get<3>(t);
180 return stream;
181}
182
183template <typename T0, typename T1, typename T2, typename T3, typename T4>
184QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4> & t)
185{
186 stream >> std::get<0>(t);
187 stream >> std::get<1>(t);
188 stream >> std::get<2>(t);
189 stream >> std::get<3>(t);
190 stream >> std::get<4>(t);
191 return stream;
192}
193
194template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
195QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4, T5> & t)
196{
197 stream >> std::get<0>(t);
198 stream >> std::get<1>(t);
199 stream >> std::get<2>(t);
200 stream >> std::get<3>(t);
201 stream >> std::get<4>(t);
202 stream >> std::get<5>(t);
203 return stream;
204}
205
206template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
207QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4, T5, T6> & t)
208{
209 stream >> std::get<0>(t);
210 stream >> std::get<1>(t);
211 stream >> std::get<2>(t);
212 stream >> std::get<3>(t);
213 stream >> std::get<4>(t);
214 stream >> std::get<5>(t);
215 stream >> std::get<6>(t);
216 return stream;
217}
218
219template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
220QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4, T5, T6, T7> & t)
221{
222 stream >> std::get<0>(t);
223 stream >> std::get<1>(t);
224 stream >> std::get<2>(t);
225 stream >> std::get<3>(t);
226 stream >> std::get<4>(t);
227 stream >> std::get<5>(t);
228 stream >> std::get<6>(t);
229 stream >> std::get<7>(t);
230 return stream;
231}
232
233template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
234QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8> & t)
235{
236 stream >> std::get<0>(t);
237 stream >> std::get<1>(t);
238 stream >> std::get<2>(t);
239 stream >> std::get<3>(t);
240 stream >> std::get<4>(t);
241 stream >> std::get<5>(t);
242 stream >> std::get<6>(t);
243 stream >> std::get<7>(t);
244 stream >> std::get<8>(t);
245 return stream;
246}
247
248template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
249QDataStream & operator>> (QDataStream & stream, std::tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> & t)
250{
251 stream >> std::get<0>(t);
252 stream >> std::get<1>(t);
253 stream >> std::get<2>(t);
254 stream >> std::get<3>(t);
255 stream >> std::get<4>(t);
256 stream >> std::get<5>(t);
257 stream >> std::get<6>(t);
258 stream >> std::get<7>(t);
259 stream >> std::get<8>(t);
260 stream >> std::get<9>(t);
261 return stream;
262}
263
264#endif // _QX_SERIALIZE_QDATASTREAM_STD_TUPLE_H_
QDataStream & operator<<(QDataStream &stream, const std::tuple< T0, T1 > &t)
QDataStream & operator>>(QDataStream &stream, std::tuple< T0, T1 > &t)