1 // 2 // Tuple.h 3 // 4 // Library: Foundation 5 // Package: Core 6 // Module: Tuple 7 // 8 // Definition of the Tuple class. 9 // 10 // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. 11 // and Contributors. 12 // 13 // SPDX-License-Identifier: BSL-1.0 14 // 15 16 17 #ifndef Foundation_Tuple_INCLUDED 18 #define Foundation_Tuple_INCLUDED 19 20 21 #include "Poco/Foundation.h" 22 #include "Poco/TypeList.h" 23 24 25 namespace Poco { 26 27 28 #if defined(POCO_COMPILER_MSVC) 29 #define POCO_TYPEWRAPPER_DEFAULTVALUE(T) TypeWrapper<T>::TYPE() 30 #else 31 #define POCO_TYPEWRAPPER_DEFAULTVALUE(T) typename TypeWrapper<T>::TYPE() 32 #endif 33 34 35 template <class T0, 36 class T1 = NullTypeList, 37 class T2 = NullTypeList, 38 class T3 = NullTypeList, 39 class T4 = NullTypeList, 40 class T5 = NullTypeList, 41 class T6 = NullTypeList, 42 class T7 = NullTypeList, 43 class T8 = NullTypeList, 44 class T9 = NullTypeList, 45 class T10 = NullTypeList, 46 class T11 = NullTypeList, 47 class T12 = NullTypeList, 48 class T13 = NullTypeList, 49 class T14 = NullTypeList, 50 class T15 = NullTypeList, 51 class T16 = NullTypeList, 52 class T17 = NullTypeList, 53 class T18 = NullTypeList, 54 class T19 = NullTypeList, 55 class T20 = NullTypeList, 56 class T21 = NullTypeList, 57 class T22 = NullTypeList, 58 class T23 = NullTypeList, 59 class T24 = NullTypeList, 60 class T25 = NullTypeList, 61 class T26 = NullTypeList, 62 class T27 = NullTypeList, 63 class T28 = NullTypeList, 64 class T29 = NullTypeList, 65 class T30 = NullTypeList, 66 class T31 = NullTypeList, 67 class T32 = NullTypeList, 68 class T33 = NullTypeList, 69 class T34 = NullTypeList, 70 class T35 = NullTypeList, 71 class T36 = NullTypeList, 72 class T37 = NullTypeList, 73 class T38 = NullTypeList, 74 class T39 = NullTypeList> 75 struct Tuple 76 { 77 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType Type; 78 79 enum TupleLengthType 80 { 81 length = Type::length 82 }; 83 TupleTuple84 Tuple():_data() 85 { 86 } 87 88 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 89 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 90 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 91 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 92 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 93 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 94 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 95 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 96 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 97 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 98 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 99 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 100 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 101 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 102 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 103 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 104 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 105 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 106 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 107 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 108 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 109 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 110 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 111 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 112 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 113 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 114 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 115 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 116 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 117 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 118 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 119 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 120 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 121 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 122 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34), 123 typename TypeWrapper<T35>::CONSTTYPE& t35 = POCO_TYPEWRAPPER_DEFAULTVALUE(T35), 124 typename TypeWrapper<T36>::CONSTTYPE& t36 = POCO_TYPEWRAPPER_DEFAULTVALUE(T36), 125 typename TypeWrapper<T37>::CONSTTYPE& t37 = POCO_TYPEWRAPPER_DEFAULTVALUE(T37), 126 typename TypeWrapper<T38>::CONSTTYPE& t38 = POCO_TYPEWRAPPER_DEFAULTVALUE(T38), 127 typename TypeWrapper<T39>::CONSTTYPE& t39 = POCO_TYPEWRAPPER_DEFAULTVALUE(T39)): _dataTuple128 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 129 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 130 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 131 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 132 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 133 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 134 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 135 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 136 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 137 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 138 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 139 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 140 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 141 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 142 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 143 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 144 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 145 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 146 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 147 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 148 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 149 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 150 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 151 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 152 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 153 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 154 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 155 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 156 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 157 (t29, typename TypeListType<T30,T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 158 (t30, typename TypeListType<T31,T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 159 (t31, typename TypeListType<T32,T33,T34,T35,T36,T37,T38,T39>::HeadType 160 (t32, typename TypeListType<T33,T34,T35,T36,T37,T38,T39>::HeadType 161 (t33, typename TypeListType<T34,T35,T36,T37,T38,T39>::HeadType 162 (t34, typename TypeListType<T35,T36,T37,T38,T39>::HeadType 163 (t35, typename TypeListType<T36,T37,T38,T39>::HeadType 164 (t36, typename TypeListType<T37,T38,T39>::HeadType 165 (t37, typename TypeListType<T38,T39>::HeadType 166 (t38, typename TypeListType<T39>::HeadType 167 (t39, NullTypeList())))))))))))))))))))))))))))))))))))))))) 168 { 169 } 170 171 template <int N> getTuple172 typename TypeGetter<N, Type>::ConstHeadType& get() const 173 { 174 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 175 } 176 177 template <int N> getTuple178 typename TypeGetter<N, Type>::HeadType& get() 179 { 180 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 181 } 182 183 template <int N> setTuple184 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 185 { 186 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 187 } 188 189 bool operator == (const Tuple& other) const 190 { 191 return _data == other._data; 192 } 193 194 bool operator != (const Tuple& other) const 195 { 196 return !(_data == other._data); 197 } 198 199 bool operator < (const Tuple& other) const 200 { 201 return _data < other._data; 202 } 203 204 private: 205 Type _data; 206 }; 207 208 209 template <class T0, 210 class T1, 211 class T2, 212 class T3, 213 class T4, 214 class T5, 215 class T6, 216 class T7, 217 class T8, 218 class T9, 219 class T10, 220 class T11, 221 class T12, 222 class T13, 223 class T14, 224 class T15, 225 class T16, 226 class T17, 227 class T18, 228 class T19, 229 class T20, 230 class T21, 231 class T22, 232 class T23, 233 class T24, 234 class T25, 235 class T26, 236 class T27, 237 class T28, 238 class T29, 239 class T30, 240 class T31, 241 class T32, 242 class T33, 243 class T34, 244 class T35, 245 class T36, 246 class T37, 247 class T38> 248 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,NullTypeList> 249 { 250 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType Type; 251 252 enum TupleLengthType 253 { 254 length = Type::length 255 }; 256 257 Tuple():_data() 258 { 259 } 260 261 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 262 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 263 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 264 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 265 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 266 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 267 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 268 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 269 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 270 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 271 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 272 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 273 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 274 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 275 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 276 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 277 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 278 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 279 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 280 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 281 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 282 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 283 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 284 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 285 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 286 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 287 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 288 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 289 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 290 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 291 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 292 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 293 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 294 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 295 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34), 296 typename TypeWrapper<T35>::CONSTTYPE& t35 = POCO_TYPEWRAPPER_DEFAULTVALUE(T35), 297 typename TypeWrapper<T36>::CONSTTYPE& t36 = POCO_TYPEWRAPPER_DEFAULTVALUE(T36), 298 typename TypeWrapper<T37>::CONSTTYPE& t37 = POCO_TYPEWRAPPER_DEFAULTVALUE(T37), 299 typename TypeWrapper<T38>::CONSTTYPE& t38 = POCO_TYPEWRAPPER_DEFAULTVALUE(T38)): 300 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 301 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 302 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 303 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 304 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 305 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 306 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 307 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 308 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 309 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 310 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 311 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 312 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 313 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 314 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 315 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 316 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 317 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 318 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 319 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 320 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 321 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 322 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 323 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 324 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 325 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 326 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 327 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 328 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 329 (t29, typename TypeListType<T30,T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 330 (t30, typename TypeListType<T31,T32,T33,T34,T35,T36,T37,T38>::HeadType 331 (t31, typename TypeListType<T32,T33,T34,T35,T36,T37,T38>::HeadType 332 (t32, typename TypeListType<T33,T34,T35,T36,T37,T38>::HeadType 333 (t33, typename TypeListType<T34,T35,T36,T37,T38>::HeadType 334 (t34, typename TypeListType<T35,T36,T37,T38>::HeadType 335 (t35, typename TypeListType<T36,T37,T38>::HeadType 336 (t36, typename TypeListType<T37,T38>::HeadType 337 (t37, typename TypeListType<T38>::HeadType 338 (t38, NullTypeList()))))))))))))))))))))))))))))))))))))))) 339 { 340 } 341 342 template <int N> 343 typename TypeGetter<N, Type>::ConstHeadType& get() const 344 { 345 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 346 } 347 348 template <int N> 349 typename TypeGetter<N, Type>::HeadType& get() 350 { 351 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 352 } 353 354 template <int N> 355 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 356 { 357 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 358 } 359 360 bool operator == (const Tuple& other) const 361 { 362 return _data == other._data; 363 } 364 365 bool operator != (const Tuple& other) const 366 { 367 return !(_data == other._data); 368 } 369 370 bool operator < (const Tuple& other) const 371 { 372 return _data < other._data; 373 } 374 375 private: 376 Type _data; 377 }; 378 379 380 template <class T0, 381 class T1, 382 class T2, 383 class T3, 384 class T4, 385 class T5, 386 class T6, 387 class T7, 388 class T8, 389 class T9, 390 class T10, 391 class T11, 392 class T12, 393 class T13, 394 class T14, 395 class T15, 396 class T16, 397 class T17, 398 class T18, 399 class T19, 400 class T20, 401 class T21, 402 class T22, 403 class T23, 404 class T24, 405 class T25, 406 class T26, 407 class T27, 408 class T28, 409 class T29, 410 class T30, 411 class T31, 412 class T32, 413 class T33, 414 class T34, 415 class T35, 416 class T36, 417 class T37> 418 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,NullTypeList> 419 { 420 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType Type; 421 422 enum TupleLengthType 423 { 424 length = Type::length 425 }; 426 427 Tuple():_data() 428 { 429 } 430 431 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 432 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 433 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 434 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 435 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 436 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 437 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 438 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 439 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 440 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 441 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 442 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 443 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 444 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 445 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 446 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 447 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 448 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 449 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 450 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 451 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 452 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 453 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 454 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 455 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 456 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 457 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 458 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 459 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 460 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 461 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 462 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 463 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 464 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 465 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34), 466 typename TypeWrapper<T35>::CONSTTYPE& t35 = POCO_TYPEWRAPPER_DEFAULTVALUE(T35), 467 typename TypeWrapper<T36>::CONSTTYPE& t36 = POCO_TYPEWRAPPER_DEFAULTVALUE(T36), 468 typename TypeWrapper<T37>::CONSTTYPE& t37 = POCO_TYPEWRAPPER_DEFAULTVALUE(T37)): 469 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 470 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 471 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 472 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 473 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 474 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 475 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 476 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 477 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 478 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 479 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 480 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 481 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 482 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 483 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 484 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 485 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 486 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 487 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 488 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 489 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 490 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 491 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 492 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 493 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 494 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 495 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 496 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 497 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 498 (t29, typename TypeListType<T30,T31,T32,T33,T34,T35,T36,T37>::HeadType 499 (t30, typename TypeListType<T31,T32,T33,T34,T35,T36,T37>::HeadType 500 (t31, typename TypeListType<T32,T33,T34,T35,T36,T37>::HeadType 501 (t32, typename TypeListType<T33,T34,T35,T36,T37>::HeadType 502 (t33, typename TypeListType<T34,T35,T36,T37>::HeadType 503 (t34, typename TypeListType<T35,T36,T37>::HeadType 504 (t35, typename TypeListType<T36,T37>::HeadType 505 (t36, typename TypeListType<T37>::HeadType 506 (t37, NullTypeList())))))))))))))))))))))))))))))))))))))) 507 { 508 } 509 510 template <int N> 511 typename TypeGetter<N, Type>::ConstHeadType& get() const 512 { 513 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 514 } 515 516 template <int N> 517 typename TypeGetter<N, Type>::HeadType& get() 518 { 519 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 520 } 521 522 template <int N> 523 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 524 { 525 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 526 } 527 528 bool operator == (const Tuple& other) const 529 { 530 return _data == other._data; 531 } 532 533 bool operator != (const Tuple& other) const 534 { 535 return !(_data == other._data); 536 } 537 538 bool operator < (const Tuple& other) const 539 { 540 return _data < other._data; 541 } 542 543 private: 544 Type _data; 545 }; 546 547 548 template <class T0, 549 class T1, 550 class T2, 551 class T3, 552 class T4, 553 class T5, 554 class T6, 555 class T7, 556 class T8, 557 class T9, 558 class T10, 559 class T11, 560 class T12, 561 class T13, 562 class T14, 563 class T15, 564 class T16, 565 class T17, 566 class T18, 567 class T19, 568 class T20, 569 class T21, 570 class T22, 571 class T23, 572 class T24, 573 class T25, 574 class T26, 575 class T27, 576 class T28, 577 class T29, 578 class T30, 579 class T31, 580 class T32, 581 class T33, 582 class T34, 583 class T35, 584 class T36> 585 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,NullTypeList> 586 { 587 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType Type; 588 589 enum TupleLengthType 590 { 591 length = Type::length 592 }; 593 594 Tuple():_data() 595 { 596 } 597 598 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 599 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 600 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 601 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 602 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 603 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 604 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 605 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 606 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 607 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 608 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 609 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 610 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 611 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 612 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 613 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 614 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 615 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 616 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 617 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 618 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 619 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 620 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 621 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 622 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 623 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 624 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 625 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 626 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 627 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 628 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 629 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 630 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 631 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 632 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34), 633 typename TypeWrapper<T35>::CONSTTYPE& t35 = POCO_TYPEWRAPPER_DEFAULTVALUE(T35), 634 typename TypeWrapper<T36>::CONSTTYPE& t36 = POCO_TYPEWRAPPER_DEFAULTVALUE(T36)): 635 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 636 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 637 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 638 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 639 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 640 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 641 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 642 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 643 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 644 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 645 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 646 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 647 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 648 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 649 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 650 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 651 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 652 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 653 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 654 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 655 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 656 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 657 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 658 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 659 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 660 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 661 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 662 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 663 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34,T35,T36>::HeadType 664 (t29, typename TypeListType<T30,T31,T32,T33,T34,T35,T36>::HeadType 665 (t30, typename TypeListType<T31,T32,T33,T34,T35,T36>::HeadType 666 (t31, typename TypeListType<T32,T33,T34,T35,T36>::HeadType 667 (t32, typename TypeListType<T33,T34,T35,T36>::HeadType 668 (t33, typename TypeListType<T34,T35,T36>::HeadType 669 (t34, typename TypeListType<T35,T36>::HeadType 670 (t35, typename TypeListType<T36>::HeadType 671 (t36, NullTypeList()))))))))))))))))))))))))))))))))))))) 672 { 673 } 674 675 template <int N> 676 typename TypeGetter<N, Type>::ConstHeadType& get() const 677 { 678 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 679 } 680 681 template <int N> 682 typename TypeGetter<N, Type>::HeadType& get() 683 { 684 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 685 } 686 687 template <int N> 688 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 689 { 690 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 691 } 692 693 bool operator == (const Tuple& other) const 694 { 695 return _data == other._data; 696 } 697 698 bool operator != (const Tuple& other) const 699 { 700 return !(_data == other._data); 701 } 702 703 bool operator < (const Tuple& other) const 704 { 705 return _data < other._data; 706 } 707 708 private: 709 Type _data; 710 }; 711 712 713 template <class T0, 714 class T1, 715 class T2, 716 class T3, 717 class T4, 718 class T5, 719 class T6, 720 class T7, 721 class T8, 722 class T9, 723 class T10, 724 class T11, 725 class T12, 726 class T13, 727 class T14, 728 class T15, 729 class T16, 730 class T17, 731 class T18, 732 class T19, 733 class T20, 734 class T21, 735 class T22, 736 class T23, 737 class T24, 738 class T25, 739 class T26, 740 class T27, 741 class T28, 742 class T29, 743 class T30, 744 class T31, 745 class T32, 746 class T33, 747 class T34, 748 class T35> 749 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,NullTypeList> 750 { 751 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType Type; 752 753 enum TupleLengthType 754 { 755 length = Type::length 756 }; 757 758 Tuple():_data() 759 { 760 } 761 762 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 763 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 764 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 765 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 766 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 767 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 768 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 769 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 770 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 771 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 772 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 773 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 774 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 775 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 776 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 777 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 778 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 779 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 780 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 781 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 782 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 783 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 784 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 785 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 786 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 787 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 788 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 789 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 790 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 791 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 792 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 793 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 794 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 795 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 796 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34), 797 typename TypeWrapper<T35>::CONSTTYPE& t35 = POCO_TYPEWRAPPER_DEFAULTVALUE(T35)): 798 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 799 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 800 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 801 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 802 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 803 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 804 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 805 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 806 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 807 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 808 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 809 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 810 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 811 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 812 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 813 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 814 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 815 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 816 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 817 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 818 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 819 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 820 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 821 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 822 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 823 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 824 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 825 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34,T35>::HeadType 826 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34,T35>::HeadType 827 (t29, typename TypeListType<T30,T31,T32,T33,T34,T35>::HeadType 828 (t30, typename TypeListType<T31,T32,T33,T34,T35>::HeadType 829 (t31, typename TypeListType<T32,T33,T34,T35>::HeadType 830 (t32, typename TypeListType<T33,T34,T35>::HeadType 831 (t33, typename TypeListType<T34,T35>::HeadType 832 (t34, typename TypeListType<T35>::HeadType 833 (t35, NullTypeList())))))))))))))))))))))))))))))))))))) 834 { 835 } 836 837 template <int N> 838 typename TypeGetter<N, Type>::ConstHeadType& get() const 839 { 840 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 841 } 842 843 template <int N> 844 typename TypeGetter<N, Type>::HeadType& get() 845 { 846 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 847 } 848 849 template <int N> 850 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 851 { 852 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 853 } 854 855 bool operator == (const Tuple& other) const 856 { 857 return _data == other._data; 858 } 859 860 bool operator != (const Tuple& other) const 861 { 862 return !(_data == other._data); 863 } 864 865 bool operator < (const Tuple& other) const 866 { 867 return _data < other._data; 868 } 869 870 private: 871 Type _data; 872 }; 873 874 875 template <class T0, 876 class T1, 877 class T2, 878 class T3, 879 class T4, 880 class T5, 881 class T6, 882 class T7, 883 class T8, 884 class T9, 885 class T10, 886 class T11, 887 class T12, 888 class T13, 889 class T14, 890 class T15, 891 class T16, 892 class T17, 893 class T18, 894 class T19, 895 class T20, 896 class T21, 897 class T22, 898 class T23, 899 class T24, 900 class T25, 901 class T26, 902 class T27, 903 class T28, 904 class T29, 905 class T30, 906 class T31, 907 class T32, 908 class T33, 909 class T34> 910 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,NullTypeList> 911 { 912 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType Type; 913 914 enum TupleLengthType 915 { 916 length = Type::length 917 }; 918 919 Tuple():_data() 920 { 921 } 922 923 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 924 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 925 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 926 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 927 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 928 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 929 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 930 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 931 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 932 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 933 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 934 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 935 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 936 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 937 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 938 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 939 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 940 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 941 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 942 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 943 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 944 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 945 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 946 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 947 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 948 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 949 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 950 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 951 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 952 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 953 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 954 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 955 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 956 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33), 957 typename TypeWrapper<T34>::CONSTTYPE& t34 = POCO_TYPEWRAPPER_DEFAULTVALUE(T34)): 958 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 959 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 960 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 961 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 962 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 963 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 964 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 965 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 966 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 967 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 968 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 969 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 970 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 971 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 972 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 973 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 974 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 975 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 976 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 977 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 978 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 979 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 980 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 981 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 982 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 983 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 984 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33,T34>::HeadType 985 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33,T34>::HeadType 986 (t28, typename TypeListType<T29,T30,T31,T32,T33,T34>::HeadType 987 (t29, typename TypeListType<T30,T31,T32,T33,T34>::HeadType 988 (t30, typename TypeListType<T31,T32,T33,T34>::HeadType 989 (t31, typename TypeListType<T32,T33,T34>::HeadType 990 (t32, typename TypeListType<T33,T34>::HeadType 991 (t33, typename TypeListType<T34>::HeadType 992 (t34, NullTypeList()))))))))))))))))))))))))))))))))))) 993 { 994 } 995 996 template <int N> 997 typename TypeGetter<N, Type>::ConstHeadType& get() const 998 { 999 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1000 } 1001 1002 template <int N> 1003 typename TypeGetter<N, Type>::HeadType& get() 1004 { 1005 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1006 } 1007 1008 template <int N> 1009 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1010 { 1011 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1012 } 1013 1014 bool operator == (const Tuple& other) const 1015 { 1016 return _data == other._data; 1017 } 1018 1019 bool operator != (const Tuple& other) const 1020 { 1021 return !(_data == other._data); 1022 } 1023 1024 bool operator < (const Tuple& other) const 1025 { 1026 return _data < other._data; 1027 } 1028 1029 private: 1030 Type _data; 1031 }; 1032 1033 1034 template <class T0, 1035 class T1, 1036 class T2, 1037 class T3, 1038 class T4, 1039 class T5, 1040 class T6, 1041 class T7, 1042 class T8, 1043 class T9, 1044 class T10, 1045 class T11, 1046 class T12, 1047 class T13, 1048 class T14, 1049 class T15, 1050 class T16, 1051 class T17, 1052 class T18, 1053 class T19, 1054 class T20, 1055 class T21, 1056 class T22, 1057 class T23, 1058 class T24, 1059 class T25, 1060 class T26, 1061 class T27, 1062 class T28, 1063 class T29, 1064 class T30, 1065 class T31, 1066 class T32, 1067 class T33> 1068 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,NullTypeList> 1069 { 1070 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType Type; 1071 1072 enum TupleLengthType 1073 { 1074 length = Type::length 1075 }; 1076 1077 Tuple():_data() 1078 { 1079 } 1080 1081 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1082 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1083 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1084 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1085 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1086 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1087 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1088 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1089 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1090 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1091 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1092 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1093 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1094 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1095 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1096 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1097 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1098 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1099 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1100 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1101 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1102 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1103 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1104 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1105 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1106 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1107 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1108 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1109 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 1110 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 1111 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 1112 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 1113 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32), 1114 typename TypeWrapper<T33>::CONSTTYPE& t33 = POCO_TYPEWRAPPER_DEFAULTVALUE(T33)): 1115 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1116 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1117 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1118 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1119 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1120 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1121 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1122 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1123 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1124 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1125 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1126 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1127 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1128 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1129 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1130 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1131 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1132 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1133 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1134 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1135 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1136 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1137 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1138 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1139 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1140 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32,T33>::HeadType 1141 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32,T33>::HeadType 1142 (t27, typename TypeListType<T28,T29,T30,T31,T32,T33>::HeadType 1143 (t28, typename TypeListType<T29,T30,T31,T32,T33>::HeadType 1144 (t29, typename TypeListType<T30,T31,T32,T33>::HeadType 1145 (t30, typename TypeListType<T31,T32,T33>::HeadType 1146 (t31, typename TypeListType<T32,T33>::HeadType 1147 (t32, typename TypeListType<T33>::HeadType 1148 (t33, NullTypeList())))))))))))))))))))))))))))))))))) 1149 { 1150 } 1151 1152 template <int N> 1153 typename TypeGetter<N, Type>::ConstHeadType& get() const 1154 { 1155 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1156 } 1157 1158 template <int N> 1159 typename TypeGetter<N, Type>::HeadType& get() 1160 { 1161 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1162 } 1163 1164 template <int N> 1165 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1166 { 1167 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1168 } 1169 1170 bool operator == (const Tuple& other) const 1171 { 1172 return _data == other._data; 1173 } 1174 1175 bool operator != (const Tuple& other) const 1176 { 1177 return !(_data == other._data); 1178 } 1179 1180 bool operator < (const Tuple& other) const 1181 { 1182 return _data < other._data; 1183 } 1184 1185 private: 1186 Type _data; 1187 }; 1188 1189 1190 template <class T0, 1191 class T1, 1192 class T2, 1193 class T3, 1194 class T4, 1195 class T5, 1196 class T6, 1197 class T7, 1198 class T8, 1199 class T9, 1200 class T10, 1201 class T11, 1202 class T12, 1203 class T13, 1204 class T14, 1205 class T15, 1206 class T16, 1207 class T17, 1208 class T18, 1209 class T19, 1210 class T20, 1211 class T21, 1212 class T22, 1213 class T23, 1214 class T24, 1215 class T25, 1216 class T26, 1217 class T27, 1218 class T28, 1219 class T29, 1220 class T30, 1221 class T31, 1222 class T32> 1223 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,NullTypeList> 1224 { 1225 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType Type; 1226 1227 enum TupleLengthType 1228 { 1229 length = Type::length 1230 }; 1231 1232 Tuple():_data() 1233 { 1234 } 1235 1236 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1237 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1238 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1239 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1240 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1241 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1242 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1243 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1244 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1245 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1246 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1247 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1248 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1249 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1250 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1251 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1252 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1253 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1254 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1255 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1256 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1257 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1258 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1259 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1260 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1261 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1262 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1263 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1264 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 1265 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 1266 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 1267 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31), 1268 typename TypeWrapper<T32>::CONSTTYPE& t32 = POCO_TYPEWRAPPER_DEFAULTVALUE(T32)): 1269 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1270 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1271 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1272 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1273 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1274 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1275 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1276 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1277 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1278 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1279 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1280 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1281 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1282 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1283 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1284 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1285 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1286 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1287 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1288 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1289 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1290 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1291 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1292 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1293 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31,T32>::HeadType 1294 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31,T32>::HeadType 1295 (t26, typename TypeListType<T27,T28,T29,T30,T31,T32>::HeadType 1296 (t27, typename TypeListType<T28,T29,T30,T31,T32>::HeadType 1297 (t28, typename TypeListType<T29,T30,T31,T32>::HeadType 1298 (t29, typename TypeListType<T30,T31,T32>::HeadType 1299 (t30, typename TypeListType<T31,T32>::HeadType 1300 (t31, typename TypeListType<T32>::HeadType 1301 (t32, NullTypeList()))))))))))))))))))))))))))))))))) 1302 { 1303 } 1304 1305 template <int N> 1306 typename TypeGetter<N, Type>::ConstHeadType& get() const 1307 { 1308 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1309 } 1310 1311 template <int N> 1312 typename TypeGetter<N, Type>::HeadType& get() 1313 { 1314 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1315 } 1316 1317 template <int N> 1318 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1319 { 1320 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1321 } 1322 1323 bool operator == (const Tuple& other) const 1324 { 1325 return _data == other._data; 1326 } 1327 1328 bool operator != (const Tuple& other) const 1329 { 1330 return !(_data == other._data); 1331 } 1332 1333 bool operator < (const Tuple& other) const 1334 { 1335 return _data < other._data; 1336 } 1337 1338 private: 1339 Type _data; 1340 }; 1341 1342 1343 template <class T0, 1344 class T1, 1345 class T2, 1346 class T3, 1347 class T4, 1348 class T5, 1349 class T6, 1350 class T7, 1351 class T8, 1352 class T9, 1353 class T10, 1354 class T11, 1355 class T12, 1356 class T13, 1357 class T14, 1358 class T15, 1359 class T16, 1360 class T17, 1361 class T18, 1362 class T19, 1363 class T20, 1364 class T21, 1365 class T22, 1366 class T23, 1367 class T24, 1368 class T25, 1369 class T26, 1370 class T27, 1371 class T28, 1372 class T29, 1373 class T30, 1374 class T31> 1375 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,NullTypeList> 1376 { 1377 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType Type; 1378 1379 enum TupleLengthType 1380 { 1381 length = Type::length 1382 }; 1383 1384 Tuple():_data() 1385 { 1386 } 1387 1388 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1389 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1390 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1391 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1392 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1393 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1394 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1395 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1396 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1397 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1398 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1399 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1400 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1401 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1402 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1403 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1404 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1405 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1406 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1407 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1408 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1409 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1410 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1411 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1412 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1413 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1414 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1415 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1416 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 1417 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 1418 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30), 1419 typename TypeWrapper<T31>::CONSTTYPE& t31 = POCO_TYPEWRAPPER_DEFAULTVALUE(T31)): 1420 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1421 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1422 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1423 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1424 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1425 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1426 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1427 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1428 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1429 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1430 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1431 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1432 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1433 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1434 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1435 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1436 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1437 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1438 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1439 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1440 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1441 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1442 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1443 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30,T31>::HeadType 1444 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30,T31>::HeadType 1445 (t25, typename TypeListType<T26,T27,T28,T29,T30,T31>::HeadType 1446 (t26, typename TypeListType<T27,T28,T29,T30,T31>::HeadType 1447 (t27, typename TypeListType<T28,T29,T30,T31>::HeadType 1448 (t28, typename TypeListType<T29,T30,T31>::HeadType 1449 (t29, typename TypeListType<T30,T31>::HeadType 1450 (t30, typename TypeListType<T31>::HeadType 1451 (t31, NullTypeList())))))))))))))))))))))))))))))))) 1452 { 1453 } 1454 1455 template <int N> 1456 typename TypeGetter<N, Type>::ConstHeadType& get() const 1457 { 1458 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1459 } 1460 1461 template <int N> 1462 typename TypeGetter<N, Type>::HeadType& get() 1463 { 1464 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1465 } 1466 1467 template <int N> 1468 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1469 { 1470 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1471 } 1472 1473 bool operator == (const Tuple& other) const 1474 { 1475 return _data == other._data; 1476 } 1477 1478 bool operator != (const Tuple& other) const 1479 { 1480 return !(_data == other._data); 1481 } 1482 1483 bool operator < (const Tuple& other) const 1484 { 1485 return _data < other._data; 1486 } 1487 1488 private: 1489 Type _data; 1490 }; 1491 1492 1493 template <class T0, 1494 class T1, 1495 class T2, 1496 class T3, 1497 class T4, 1498 class T5, 1499 class T6, 1500 class T7, 1501 class T8, 1502 class T9, 1503 class T10, 1504 class T11, 1505 class T12, 1506 class T13, 1507 class T14, 1508 class T15, 1509 class T16, 1510 class T17, 1511 class T18, 1512 class T19, 1513 class T20, 1514 class T21, 1515 class T22, 1516 class T23, 1517 class T24, 1518 class T25, 1519 class T26, 1520 class T27, 1521 class T28, 1522 class T29, 1523 class T30> 1524 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,NullTypeList> 1525 { 1526 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType Type; 1527 1528 enum TupleLengthType 1529 { 1530 length = Type::length 1531 }; 1532 1533 Tuple():_data() 1534 { 1535 } 1536 1537 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1538 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1539 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1540 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1541 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1542 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1543 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1544 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1545 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1546 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1547 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1548 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1549 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1550 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1551 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1552 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1553 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1554 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1555 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1556 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1557 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1558 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1559 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1560 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1561 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1562 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1563 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1564 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1565 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 1566 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29), 1567 typename TypeWrapper<T30>::CONSTTYPE& t30 = POCO_TYPEWRAPPER_DEFAULTVALUE(T30)): 1568 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1569 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1570 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1571 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1572 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1573 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1574 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1575 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1576 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1577 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1578 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1579 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1580 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1581 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1582 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1583 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1584 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1585 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1586 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1587 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1588 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1589 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1590 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29,T30>::HeadType 1591 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29,T30>::HeadType 1592 (t24, typename TypeListType<T25,T26,T27,T28,T29,T30>::HeadType 1593 (t25, typename TypeListType<T26,T27,T28,T29,T30>::HeadType 1594 (t26, typename TypeListType<T27,T28,T29,T30>::HeadType 1595 (t27, typename TypeListType<T28,T29,T30>::HeadType 1596 (t28, typename TypeListType<T29,T30>::HeadType 1597 (t29, typename TypeListType<T30>::HeadType 1598 (t30, NullTypeList()))))))))))))))))))))))))))))))) 1599 { 1600 } 1601 1602 template <int N> 1603 typename TypeGetter<N, Type>::ConstHeadType& get() const 1604 { 1605 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1606 } 1607 1608 template <int N> 1609 typename TypeGetter<N, Type>::HeadType& get() 1610 { 1611 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1612 } 1613 1614 template <int N> 1615 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1616 { 1617 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1618 } 1619 1620 bool operator == (const Tuple& other) const 1621 { 1622 return _data == other._data; 1623 } 1624 1625 bool operator != (const Tuple& other) const 1626 { 1627 return !(_data == other._data); 1628 } 1629 1630 bool operator < (const Tuple& other) const 1631 { 1632 return _data < other._data; 1633 } 1634 1635 private: 1636 Type _data; 1637 }; 1638 1639 1640 template <class T0, 1641 class T1, 1642 class T2, 1643 class T3, 1644 class T4, 1645 class T5, 1646 class T6, 1647 class T7, 1648 class T8, 1649 class T9, 1650 class T10, 1651 class T11, 1652 class T12, 1653 class T13, 1654 class T14, 1655 class T15, 1656 class T16, 1657 class T17, 1658 class T18, 1659 class T19, 1660 class T20, 1661 class T21, 1662 class T22, 1663 class T23, 1664 class T24, 1665 class T25, 1666 class T26, 1667 class T27, 1668 class T28, 1669 class T29> 1670 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,NullTypeList> 1671 { 1672 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType Type; 1673 1674 enum TupleLengthType 1675 { 1676 length = Type::length 1677 }; 1678 1679 Tuple():_data() 1680 { 1681 } 1682 1683 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1684 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1685 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1686 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1687 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1688 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1689 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1690 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1691 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1692 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1693 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1694 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1695 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1696 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1697 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1698 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1699 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1700 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1701 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1702 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1703 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1704 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1705 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1706 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1707 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1708 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1709 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1710 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1711 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28), 1712 typename TypeWrapper<T29>::CONSTTYPE& t29 = POCO_TYPEWRAPPER_DEFAULTVALUE(T29)): 1713 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1714 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1715 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1716 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1717 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1718 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1719 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1720 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1721 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1722 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1723 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1724 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1725 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1726 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1727 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1728 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1729 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1730 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1731 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1732 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1733 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1734 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28,T29>::HeadType 1735 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28,T29>::HeadType 1736 (t23, typename TypeListType<T24,T25,T26,T27,T28,T29>::HeadType 1737 (t24, typename TypeListType<T25,T26,T27,T28,T29>::HeadType 1738 (t25, typename TypeListType<T26,T27,T28,T29>::HeadType 1739 (t26, typename TypeListType<T27,T28,T29>::HeadType 1740 (t27, typename TypeListType<T28,T29>::HeadType 1741 (t28, typename TypeListType<T29>::HeadType 1742 (t29, NullTypeList())))))))))))))))))))))))))))))) 1743 { 1744 } 1745 1746 template <int N> 1747 typename TypeGetter<N, Type>::ConstHeadType& get() const 1748 { 1749 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1750 } 1751 1752 template <int N> 1753 typename TypeGetter<N, Type>::HeadType& get() 1754 { 1755 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1756 } 1757 1758 template <int N> 1759 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1760 { 1761 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1762 } 1763 1764 bool operator == (const Tuple& other) const 1765 { 1766 return _data == other._data; 1767 } 1768 1769 bool operator != (const Tuple& other) const 1770 { 1771 return !(_data == other._data); 1772 } 1773 1774 bool operator < (const Tuple& other) const 1775 { 1776 return _data < other._data; 1777 } 1778 1779 private: 1780 Type _data; 1781 }; 1782 1783 1784 template <class T0, 1785 class T1, 1786 class T2, 1787 class T3, 1788 class T4, 1789 class T5, 1790 class T6, 1791 class T7, 1792 class T8, 1793 class T9, 1794 class T10, 1795 class T11, 1796 class T12, 1797 class T13, 1798 class T14, 1799 class T15, 1800 class T16, 1801 class T17, 1802 class T18, 1803 class T19, 1804 class T20, 1805 class T21, 1806 class T22, 1807 class T23, 1808 class T24, 1809 class T25, 1810 class T26, 1811 class T27, 1812 class T28> 1813 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,NullTypeList> 1814 { 1815 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType Type; 1816 1817 enum TupleLengthType 1818 { 1819 length = Type::length 1820 }; 1821 1822 Tuple():_data() 1823 { 1824 } 1825 1826 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1827 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1828 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1829 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1830 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1831 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1832 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1833 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1834 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1835 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1836 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1837 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1838 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1839 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1840 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1841 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1842 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1843 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1844 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1845 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1846 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1847 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1848 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1849 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1850 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1851 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1852 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1853 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27), 1854 typename TypeWrapper<T28>::CONSTTYPE& t28 = POCO_TYPEWRAPPER_DEFAULTVALUE(T28)): 1855 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1856 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1857 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1858 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1859 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1860 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1861 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1862 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1863 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1864 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1865 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1866 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1867 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1868 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1869 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1870 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1871 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1872 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1873 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1874 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1875 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27,T28>::HeadType 1876 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27,T28>::HeadType 1877 (t22, typename TypeListType<T23,T24,T25,T26,T27,T28>::HeadType 1878 (t23, typename TypeListType<T24,T25,T26,T27,T28>::HeadType 1879 (t24, typename TypeListType<T25,T26,T27,T28>::HeadType 1880 (t25, typename TypeListType<T26,T27,T28>::HeadType 1881 (t26, typename TypeListType<T27,T28>::HeadType 1882 (t27, typename TypeListType<T28>::HeadType 1883 (t28, NullTypeList()))))))))))))))))))))))))))))) 1884 { 1885 } 1886 1887 template <int N> 1888 typename TypeGetter<N, Type>::ConstHeadType& get() const 1889 { 1890 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1891 } 1892 1893 template <int N> 1894 typename TypeGetter<N, Type>::HeadType& get() 1895 { 1896 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 1897 } 1898 1899 template <int N> 1900 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 1901 { 1902 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 1903 } 1904 1905 bool operator == (const Tuple& other) const 1906 { 1907 return _data == other._data; 1908 } 1909 1910 bool operator != (const Tuple& other) const 1911 { 1912 return !(_data == other._data); 1913 } 1914 1915 bool operator < (const Tuple& other) const 1916 { 1917 return _data < other._data; 1918 } 1919 1920 private: 1921 Type _data; 1922 }; 1923 1924 1925 template <class T0, 1926 class T1, 1927 class T2, 1928 class T3, 1929 class T4, 1930 class T5, 1931 class T6, 1932 class T7, 1933 class T8, 1934 class T9, 1935 class T10, 1936 class T11, 1937 class T12, 1938 class T13, 1939 class T14, 1940 class T15, 1941 class T16, 1942 class T17, 1943 class T18, 1944 class T19, 1945 class T20, 1946 class T21, 1947 class T22, 1948 class T23, 1949 class T24, 1950 class T25, 1951 class T26, 1952 class T27> 1953 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,NullTypeList> 1954 { 1955 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType Type; 1956 1957 enum TupleLengthType 1958 { 1959 length = Type::length 1960 }; 1961 1962 Tuple():_data() 1963 { 1964 } 1965 1966 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 1967 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 1968 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 1969 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 1970 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 1971 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 1972 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 1973 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 1974 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 1975 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 1976 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 1977 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 1978 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 1979 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 1980 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 1981 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 1982 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 1983 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 1984 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 1985 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 1986 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 1987 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 1988 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 1989 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 1990 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 1991 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 1992 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26), 1993 typename TypeWrapper<T27>::CONSTTYPE& t27 = POCO_TYPEWRAPPER_DEFAULTVALUE(T27)): 1994 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 1995 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 1996 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 1997 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 1998 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 1999 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2000 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2001 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2002 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2003 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2004 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2005 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2006 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2007 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2008 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2009 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2010 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2011 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2012 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2013 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26,T27>::HeadType 2014 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26,T27>::HeadType 2015 (t21, typename TypeListType<T22,T23,T24,T25,T26,T27>::HeadType 2016 (t22, typename TypeListType<T23,T24,T25,T26,T27>::HeadType 2017 (t23, typename TypeListType<T24,T25,T26,T27>::HeadType 2018 (t24, typename TypeListType<T25,T26,T27>::HeadType 2019 (t25, typename TypeListType<T26,T27>::HeadType 2020 (t26, typename TypeListType<T27>::HeadType 2021 (t27, NullTypeList())))))))))))))))))))))))))))) 2022 { 2023 } 2024 2025 template <int N> 2026 typename TypeGetter<N, Type>::ConstHeadType& get() const 2027 { 2028 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2029 } 2030 2031 template <int N> 2032 typename TypeGetter<N, Type>::HeadType& get() 2033 { 2034 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2035 } 2036 2037 template <int N> 2038 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2039 { 2040 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2041 } 2042 2043 bool operator == (const Tuple& other) const 2044 { 2045 return _data == other._data; 2046 } 2047 2048 bool operator != (const Tuple& other) const 2049 { 2050 return !(_data == other._data); 2051 } 2052 2053 bool operator < (const Tuple& other) const 2054 { 2055 return _data < other._data; 2056 } 2057 2058 private: 2059 Type _data; 2060 }; 2061 2062 2063 template <class T0, 2064 class T1, 2065 class T2, 2066 class T3, 2067 class T4, 2068 class T5, 2069 class T6, 2070 class T7, 2071 class T8, 2072 class T9, 2073 class T10, 2074 class T11, 2075 class T12, 2076 class T13, 2077 class T14, 2078 class T15, 2079 class T16, 2080 class T17, 2081 class T18, 2082 class T19, 2083 class T20, 2084 class T21, 2085 class T22, 2086 class T23, 2087 class T24, 2088 class T25, 2089 class T26> 2090 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,NullTypeList> 2091 { 2092 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType Type; 2093 2094 enum TupleLengthType 2095 { 2096 length = Type::length 2097 }; 2098 2099 Tuple():_data() 2100 { 2101 } 2102 2103 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2104 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2105 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2106 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2107 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2108 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2109 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2110 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2111 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2112 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2113 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2114 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2115 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2116 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2117 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2118 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2119 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2120 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2121 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2122 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2123 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2124 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 2125 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 2126 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 2127 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 2128 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25), 2129 typename TypeWrapper<T26>::CONSTTYPE& t26 = POCO_TYPEWRAPPER_DEFAULTVALUE(T26)): 2130 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2131 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2132 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2133 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2134 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2135 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2136 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2137 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2138 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2139 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2140 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2141 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2142 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2143 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2144 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2145 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2146 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2147 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2148 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25,T26>::HeadType 2149 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25,T26>::HeadType 2150 (t20, typename TypeListType<T21,T22,T23,T24,T25,T26>::HeadType 2151 (t21, typename TypeListType<T22,T23,T24,T25,T26>::HeadType 2152 (t22, typename TypeListType<T23,T24,T25,T26>::HeadType 2153 (t23, typename TypeListType<T24,T25,T26>::HeadType 2154 (t24, typename TypeListType<T25,T26>::HeadType 2155 (t25, typename TypeListType<T26>::HeadType 2156 (t26, NullTypeList()))))))))))))))))))))))))))) 2157 { 2158 } 2159 2160 template <int N> 2161 typename TypeGetter<N, Type>::ConstHeadType& get() const 2162 { 2163 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2164 } 2165 2166 template <int N> 2167 typename TypeGetter<N, Type>::HeadType& get() 2168 { 2169 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2170 } 2171 2172 template <int N> 2173 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2174 { 2175 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2176 } 2177 2178 bool operator == (const Tuple& other) const 2179 { 2180 return _data == other._data; 2181 } 2182 2183 bool operator != (const Tuple& other) const 2184 { 2185 return !(_data == other._data); 2186 } 2187 2188 bool operator < (const Tuple& other) const 2189 { 2190 return _data < other._data; 2191 } 2192 2193 private: 2194 Type _data; 2195 }; 2196 2197 2198 template <class T0, 2199 class T1, 2200 class T2, 2201 class T3, 2202 class T4, 2203 class T5, 2204 class T6, 2205 class T7, 2206 class T8, 2207 class T9, 2208 class T10, 2209 class T11, 2210 class T12, 2211 class T13, 2212 class T14, 2213 class T15, 2214 class T16, 2215 class T17, 2216 class T18, 2217 class T19, 2218 class T20, 2219 class T21, 2220 class T22, 2221 class T23, 2222 class T24, 2223 class T25> 2224 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,NullTypeList> 2225 { 2226 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType Type; 2227 2228 enum TupleLengthType 2229 { 2230 length = Type::length 2231 }; 2232 2233 Tuple():_data() 2234 { 2235 } 2236 2237 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2238 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2239 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2240 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2241 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2242 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2243 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2244 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2245 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2246 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2247 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2248 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2249 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2250 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2251 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2252 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2253 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2254 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2255 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2256 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2257 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2258 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 2259 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 2260 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 2261 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24), 2262 typename TypeWrapper<T25>::CONSTTYPE& t25 = POCO_TYPEWRAPPER_DEFAULTVALUE(T25)): 2263 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2264 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2265 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2266 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2267 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2268 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2269 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2270 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2271 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2272 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2273 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2274 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2275 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2276 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2277 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2278 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2279 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2280 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24,T25>::HeadType 2281 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24,T25>::HeadType 2282 (t19, typename TypeListType<T20,T21,T22,T23,T24,T25>::HeadType 2283 (t20, typename TypeListType<T21,T22,T23,T24,T25>::HeadType 2284 (t21, typename TypeListType<T22,T23,T24,T25>::HeadType 2285 (t22, typename TypeListType<T23,T24,T25>::HeadType 2286 (t23, typename TypeListType<T24,T25>::HeadType 2287 (t24, typename TypeListType<T25>::HeadType 2288 (t25, NullTypeList())))))))))))))))))))))))))) 2289 { 2290 } 2291 2292 template <int N> 2293 typename TypeGetter<N, Type>::ConstHeadType& get() const 2294 { 2295 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2296 } 2297 2298 template <int N> 2299 typename TypeGetter<N, Type>::HeadType& get() 2300 { 2301 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2302 } 2303 2304 template <int N> 2305 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2306 { 2307 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2308 } 2309 2310 bool operator == (const Tuple& other) const 2311 { 2312 return _data == other._data; 2313 } 2314 2315 bool operator != (const Tuple& other) const 2316 { 2317 return !(_data == other._data); 2318 } 2319 2320 bool operator < (const Tuple& other) const 2321 { 2322 return _data < other._data; 2323 } 2324 2325 private: 2326 Type _data; 2327 }; 2328 2329 2330 template <class T0, 2331 class T1, 2332 class T2, 2333 class T3, 2334 class T4, 2335 class T5, 2336 class T6, 2337 class T7, 2338 class T8, 2339 class T9, 2340 class T10, 2341 class T11, 2342 class T12, 2343 class T13, 2344 class T14, 2345 class T15, 2346 class T16, 2347 class T17, 2348 class T18, 2349 class T19, 2350 class T20, 2351 class T21, 2352 class T22, 2353 class T23, 2354 class T24> 2355 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,NullTypeList> 2356 { 2357 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType Type; 2358 2359 enum TupleLengthType 2360 { 2361 length = Type::length 2362 }; 2363 2364 Tuple():_data() 2365 { 2366 } 2367 2368 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2369 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2370 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2371 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2372 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2373 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2374 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2375 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2376 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2377 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2378 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2379 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2380 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2381 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2382 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2383 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2384 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2385 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2386 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2387 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2388 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2389 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 2390 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 2391 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23), 2392 typename TypeWrapper<T24>::CONSTTYPE& t24 = POCO_TYPEWRAPPER_DEFAULTVALUE(T24)): 2393 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2394 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2395 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2396 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2397 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2398 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2399 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2400 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2401 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2402 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2403 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2404 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2405 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2406 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2407 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2408 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2409 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23,T24>::HeadType 2410 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23,T24>::HeadType 2411 (t18, typename TypeListType<T19,T20,T21,T22,T23,T24>::HeadType 2412 (t19, typename TypeListType<T20,T21,T22,T23,T24>::HeadType 2413 (t20, typename TypeListType<T21,T22,T23,T24>::HeadType 2414 (t21, typename TypeListType<T22,T23,T24>::HeadType 2415 (t22, typename TypeListType<T23,T24>::HeadType 2416 (t23, typename TypeListType<T24>::HeadType 2417 (t24, NullTypeList()))))))))))))))))))))))))) 2418 { 2419 } 2420 2421 template <int N> 2422 typename TypeGetter<N, Type>::ConstHeadType& get() const 2423 { 2424 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2425 } 2426 2427 template <int N> 2428 typename TypeGetter<N, Type>::HeadType& get() 2429 { 2430 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2431 } 2432 2433 template <int N> 2434 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2435 { 2436 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2437 } 2438 2439 bool operator == (const Tuple& other) const 2440 { 2441 return _data == other._data; 2442 } 2443 2444 bool operator != (const Tuple& other) const 2445 { 2446 return !(_data == other._data); 2447 } 2448 2449 bool operator < (const Tuple& other) const 2450 { 2451 return _data < other._data; 2452 } 2453 2454 private: 2455 Type _data; 2456 }; 2457 2458 2459 template <class T0, 2460 class T1, 2461 class T2, 2462 class T3, 2463 class T4, 2464 class T5, 2465 class T6, 2466 class T7, 2467 class T8, 2468 class T9, 2469 class T10, 2470 class T11, 2471 class T12, 2472 class T13, 2473 class T14, 2474 class T15, 2475 class T16, 2476 class T17, 2477 class T18, 2478 class T19, 2479 class T20, 2480 class T21, 2481 class T22, 2482 class T23> 2483 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,NullTypeList> 2484 { 2485 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType Type; 2486 2487 enum TupleLengthType 2488 { 2489 length = Type::length 2490 }; 2491 2492 Tuple():_data() 2493 { 2494 } 2495 2496 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2497 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2498 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2499 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2500 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2501 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2502 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2503 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2504 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2505 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2506 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2507 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2508 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2509 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2510 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2511 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2512 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2513 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2514 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2515 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2516 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2517 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 2518 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22), 2519 typename TypeWrapper<T23>::CONSTTYPE& t23 = POCO_TYPEWRAPPER_DEFAULTVALUE(T23)): 2520 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2521 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2522 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2523 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2524 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2525 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2526 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2527 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2528 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2529 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2530 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2531 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2532 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2533 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2534 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2535 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22,T23>::HeadType 2536 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22,T23>::HeadType 2537 (t17, typename TypeListType<T18,T19,T20,T21,T22,T23>::HeadType 2538 (t18, typename TypeListType<T19,T20,T21,T22,T23>::HeadType 2539 (t19, typename TypeListType<T20,T21,T22,T23>::HeadType 2540 (t20, typename TypeListType<T21,T22,T23>::HeadType 2541 (t21, typename TypeListType<T22,T23>::HeadType 2542 (t22, typename TypeListType<T23>::HeadType 2543 (t23, NullTypeList())))))))))))))))))))))))) 2544 { 2545 } 2546 2547 template <int N> 2548 typename TypeGetter<N, Type>::ConstHeadType& get() const 2549 { 2550 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2551 } 2552 2553 template <int N> 2554 typename TypeGetter<N, Type>::HeadType& get() 2555 { 2556 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2557 } 2558 2559 template <int N> 2560 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2561 { 2562 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2563 } 2564 2565 bool operator == (const Tuple& other) const 2566 { 2567 return _data == other._data; 2568 } 2569 2570 bool operator != (const Tuple& other) const 2571 { 2572 return !(_data == other._data); 2573 } 2574 2575 bool operator < (const Tuple& other) const 2576 { 2577 return _data < other._data; 2578 } 2579 2580 private: 2581 Type _data; 2582 }; 2583 2584 2585 template <class T0, 2586 class T1, 2587 class T2, 2588 class T3, 2589 class T4, 2590 class T5, 2591 class T6, 2592 class T7, 2593 class T8, 2594 class T9, 2595 class T10, 2596 class T11, 2597 class T12, 2598 class T13, 2599 class T14, 2600 class T15, 2601 class T16, 2602 class T17, 2603 class T18, 2604 class T19, 2605 class T20, 2606 class T21, 2607 class T22> 2608 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,NullTypeList> 2609 { 2610 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType Type; 2611 2612 enum TupleLengthType 2613 { 2614 length = Type::length 2615 }; 2616 2617 Tuple():_data() 2618 { 2619 } 2620 2621 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2622 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2623 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2624 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2625 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2626 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2627 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2628 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2629 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2630 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2631 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2632 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2633 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2634 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2635 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2636 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2637 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2638 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2639 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2640 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2641 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2642 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21), 2643 typename TypeWrapper<T22>::CONSTTYPE& t22 = POCO_TYPEWRAPPER_DEFAULTVALUE(T22)): 2644 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2645 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2646 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2647 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2648 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2649 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2650 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2651 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2652 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2653 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2654 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2655 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2656 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2657 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2658 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21,T22>::HeadType 2659 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21,T22>::HeadType 2660 (t16, typename TypeListType<T17,T18,T19,T20,T21,T22>::HeadType 2661 (t17, typename TypeListType<T18,T19,T20,T21,T22>::HeadType 2662 (t18, typename TypeListType<T19,T20,T21,T22>::HeadType 2663 (t19, typename TypeListType<T20,T21,T22>::HeadType 2664 (t20, typename TypeListType<T21,T22>::HeadType 2665 (t21, typename TypeListType<T22>::HeadType 2666 (t22, NullTypeList()))))))))))))))))))))))) 2667 { 2668 } 2669 2670 template <int N> 2671 typename TypeGetter<N, Type>::ConstHeadType& get() const 2672 { 2673 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2674 } 2675 2676 template <int N> 2677 typename TypeGetter<N, Type>::HeadType& get() 2678 { 2679 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2680 } 2681 2682 template <int N> 2683 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2684 { 2685 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2686 } 2687 2688 bool operator == (const Tuple& other) const 2689 { 2690 return _data == other._data; 2691 } 2692 2693 bool operator != (const Tuple& other) const 2694 { 2695 return !(_data == other._data); 2696 } 2697 2698 bool operator < (const Tuple& other) const 2699 { 2700 return _data < other._data; 2701 } 2702 2703 private: 2704 Type _data; 2705 }; 2706 2707 2708 template <class T0, 2709 class T1, 2710 class T2, 2711 class T3, 2712 class T4, 2713 class T5, 2714 class T6, 2715 class T7, 2716 class T8, 2717 class T9, 2718 class T10, 2719 class T11, 2720 class T12, 2721 class T13, 2722 class T14, 2723 class T15, 2724 class T16, 2725 class T17, 2726 class T18, 2727 class T19, 2728 class T20, 2729 class T21> 2730 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,NullTypeList> 2731 { 2732 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType Type; 2733 2734 enum TupleLengthType 2735 { 2736 length = Type::length 2737 }; 2738 2739 Tuple():_data() 2740 { 2741 } 2742 2743 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2744 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2745 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2746 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2747 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2748 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2749 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2750 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2751 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2752 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2753 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2754 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2755 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2756 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2757 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2758 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2759 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2760 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2761 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2762 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2763 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20), 2764 typename TypeWrapper<T21>::CONSTTYPE& t21 = POCO_TYPEWRAPPER_DEFAULTVALUE(T21)): 2765 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2766 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2767 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2768 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2769 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2770 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2771 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2772 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2773 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2774 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2775 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2776 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2777 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2778 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20,T21>::HeadType 2779 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20,T21>::HeadType 2780 (t15, typename TypeListType<T16,T17,T18,T19,T20,T21>::HeadType 2781 (t16, typename TypeListType<T17,T18,T19,T20,T21>::HeadType 2782 (t17, typename TypeListType<T18,T19,T20,T21>::HeadType 2783 (t18, typename TypeListType<T19,T20,T21>::HeadType 2784 (t19, typename TypeListType<T20,T21>::HeadType 2785 (t20, typename TypeListType<T21>::HeadType 2786 (t21, NullTypeList())))))))))))))))))))))) 2787 { 2788 } 2789 2790 template <int N> 2791 typename TypeGetter<N, Type>::ConstHeadType& get() const 2792 { 2793 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2794 } 2795 2796 template <int N> 2797 typename TypeGetter<N, Type>::HeadType& get() 2798 { 2799 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2800 } 2801 2802 template <int N> 2803 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2804 { 2805 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2806 } 2807 2808 bool operator == (const Tuple& other) const 2809 { 2810 return _data == other._data; 2811 } 2812 2813 bool operator != (const Tuple& other) const 2814 { 2815 return !(_data == other._data); 2816 } 2817 2818 bool operator < (const Tuple& other) const 2819 { 2820 return _data < other._data; 2821 } 2822 2823 private: 2824 Type _data; 2825 }; 2826 2827 2828 template <class T0, 2829 class T1, 2830 class T2, 2831 class T3, 2832 class T4, 2833 class T5, 2834 class T6, 2835 class T7, 2836 class T8, 2837 class T9, 2838 class T10, 2839 class T11, 2840 class T12, 2841 class T13, 2842 class T14, 2843 class T15, 2844 class T16, 2845 class T17, 2846 class T18, 2847 class T19, 2848 class T20> 2849 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,NullTypeList> 2850 { 2851 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType Type; 2852 2853 enum TupleLengthType 2854 { 2855 length = Type::length 2856 }; 2857 2858 Tuple():_data() 2859 { 2860 } 2861 2862 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2863 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2864 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2865 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2866 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2867 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2868 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2869 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2870 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2871 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2872 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2873 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2874 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2875 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2876 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2877 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2878 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2879 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2880 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2881 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19), 2882 typename TypeWrapper<T20>::CONSTTYPE& t20 = POCO_TYPEWRAPPER_DEFAULTVALUE(T20)): 2883 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2884 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2885 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2886 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2887 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2888 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2889 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2890 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2891 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2892 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2893 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2894 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2895 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19,T20>::HeadType 2896 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19,T20>::HeadType 2897 (t14, typename TypeListType<T15,T16,T17,T18,T19,T20>::HeadType 2898 (t15, typename TypeListType<T16,T17,T18,T19,T20>::HeadType 2899 (t16, typename TypeListType<T17,T18,T19,T20>::HeadType 2900 (t17, typename TypeListType<T18,T19,T20>::HeadType 2901 (t18, typename TypeListType<T19,T20>::HeadType 2902 (t19, typename TypeListType<T20>::HeadType 2903 (t20, NullTypeList()))))))))))))))))))))) 2904 { 2905 } 2906 2907 template <int N> 2908 typename TypeGetter<N, Type>::ConstHeadType& get() const 2909 { 2910 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2911 } 2912 2913 template <int N> 2914 typename TypeGetter<N, Type>::HeadType& get() 2915 { 2916 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 2917 } 2918 2919 template <int N> 2920 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 2921 { 2922 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 2923 } 2924 2925 bool operator == (const Tuple& other) const 2926 { 2927 return _data == other._data; 2928 } 2929 2930 bool operator != (const Tuple& other) const 2931 { 2932 return !(_data == other._data); 2933 } 2934 2935 bool operator < (const Tuple& other) const 2936 { 2937 return _data < other._data; 2938 } 2939 2940 private: 2941 Type _data; 2942 }; 2943 2944 2945 template <class T0, 2946 class T1, 2947 class T2, 2948 class T3, 2949 class T4, 2950 class T5, 2951 class T6, 2952 class T7, 2953 class T8, 2954 class T9, 2955 class T10, 2956 class T11, 2957 class T12, 2958 class T13, 2959 class T14, 2960 class T15, 2961 class T16, 2962 class T17, 2963 class T18, 2964 class T19> 2965 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,NullTypeList> 2966 { 2967 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType Type; 2968 2969 enum TupleLengthType 2970 { 2971 length = Type::length 2972 }; 2973 2974 Tuple():_data() 2975 { 2976 } 2977 2978 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 2979 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 2980 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 2981 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 2982 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 2983 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 2984 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 2985 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 2986 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 2987 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 2988 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 2989 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 2990 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 2991 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 2992 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 2993 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 2994 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 2995 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 2996 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), 2997 typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)): 2998 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 2999 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3000 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3001 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3002 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3003 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3004 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3005 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3006 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3007 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3008 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3009 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18,T19>::HeadType 3010 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18,T19>::HeadType 3011 (t13, typename TypeListType<T14,T15,T16,T17,T18,T19>::HeadType 3012 (t14, typename TypeListType<T15,T16,T17,T18,T19>::HeadType 3013 (t15, typename TypeListType<T16,T17,T18,T19>::HeadType 3014 (t16, typename TypeListType<T17,T18,T19>::HeadType 3015 (t17, typename TypeListType<T18,T19>::HeadType 3016 (t18, typename TypeListType<T19>::HeadType 3017 (t19, NullTypeList())))))))))))))))))))) 3018 { 3019 } 3020 3021 template <int N> 3022 typename TypeGetter<N, Type>::ConstHeadType& get() const 3023 { 3024 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3025 } 3026 3027 template <int N> 3028 typename TypeGetter<N, Type>::HeadType& get() 3029 { 3030 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3031 } 3032 3033 template <int N> 3034 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3035 { 3036 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3037 } 3038 3039 bool operator == (const Tuple& other) const 3040 { 3041 return _data == other._data; 3042 } 3043 3044 bool operator != (const Tuple& other) const 3045 { 3046 return !(_data == other._data); 3047 } 3048 3049 bool operator < (const Tuple& other) const 3050 { 3051 return _data < other._data; 3052 } 3053 3054 private: 3055 Type _data; 3056 }; 3057 3058 3059 template <class T0, 3060 class T1, 3061 class T2, 3062 class T3, 3063 class T4, 3064 class T5, 3065 class T6, 3066 class T7, 3067 class T8, 3068 class T9, 3069 class T10, 3070 class T11, 3071 class T12, 3072 class T13, 3073 class T14, 3074 class T15, 3075 class T16, 3076 class T17, 3077 class T18> 3078 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,NullTypeList> 3079 { 3080 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType Type; 3081 3082 enum TupleLengthType 3083 { 3084 length = Type::length 3085 }; 3086 3087 Tuple():_data() 3088 { 3089 } 3090 3091 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3092 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3093 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3094 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3095 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3096 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3097 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3098 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3099 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3100 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3101 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3102 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3103 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3104 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 3105 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 3106 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 3107 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 3108 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), 3109 typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18)): 3110 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3111 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3112 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3113 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3114 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3115 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3116 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3117 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3118 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3119 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3120 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17,T18>::HeadType 3121 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17,T18>::HeadType 3122 (t12, typename TypeListType<T13,T14,T15,T16,T17,T18>::HeadType 3123 (t13, typename TypeListType<T14,T15,T16,T17,T18>::HeadType 3124 (t14, typename TypeListType<T15,T16,T17,T18>::HeadType 3125 (t15, typename TypeListType<T16,T17,T18>::HeadType 3126 (t16, typename TypeListType<T17,T18>::HeadType 3127 (t17, typename TypeListType<T18>::HeadType 3128 (t18, NullTypeList()))))))))))))))))))) 3129 { 3130 } 3131 3132 template <int N> 3133 typename TypeGetter<N, Type>::ConstHeadType& get() const 3134 { 3135 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3136 } 3137 3138 template <int N> 3139 typename TypeGetter<N, Type>::HeadType& get() 3140 { 3141 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3142 } 3143 3144 template <int N> 3145 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3146 { 3147 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3148 } 3149 3150 bool operator == (const Tuple& other) const 3151 { 3152 return _data == other._data; 3153 } 3154 3155 bool operator != (const Tuple& other) const 3156 { 3157 return !(_data == other._data); 3158 } 3159 3160 bool operator < (const Tuple& other) const 3161 { 3162 return _data < other._data; 3163 } 3164 3165 private: 3166 Type _data; 3167 }; 3168 3169 3170 template <class T0, 3171 class T1, 3172 class T2, 3173 class T3, 3174 class T4, 3175 class T5, 3176 class T6, 3177 class T7, 3178 class T8, 3179 class T9, 3180 class T10, 3181 class T11, 3182 class T12, 3183 class T13, 3184 class T14, 3185 class T15, 3186 class T16, 3187 class T17> 3188 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,NullTypeList> 3189 { 3190 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType Type; 3191 3192 enum TupleLengthType 3193 { 3194 length = Type::length 3195 }; 3196 3197 Tuple():_data() 3198 { 3199 } 3200 3201 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3202 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3203 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3204 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3205 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3206 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3207 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3208 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3209 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3210 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3211 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3212 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3213 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3214 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 3215 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 3216 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 3217 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), 3218 typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17)): 3219 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3220 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3221 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3222 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3223 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3224 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3225 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3226 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3227 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3228 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16,T17>::HeadType 3229 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16,T17>::HeadType 3230 (t11, typename TypeListType<T12,T13,T14,T15,T16,T17>::HeadType 3231 (t12, typename TypeListType<T13,T14,T15,T16,T17>::HeadType 3232 (t13, typename TypeListType<T14,T15,T16,T17>::HeadType 3233 (t14, typename TypeListType<T15,T16,T17>::HeadType 3234 (t15, typename TypeListType<T16,T17>::HeadType 3235 (t16, typename TypeListType<T17>::HeadType 3236 (t17, NullTypeList())))))))))))))))))) 3237 { 3238 } 3239 3240 template <int N> 3241 typename TypeGetter<N, Type>::ConstHeadType& get() const 3242 { 3243 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3244 } 3245 3246 template <int N> 3247 typename TypeGetter<N, Type>::HeadType& get() 3248 { 3249 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3250 } 3251 3252 template <int N> 3253 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3254 { 3255 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3256 } 3257 3258 bool operator == (const Tuple& other) const 3259 { 3260 return _data == other._data; 3261 } 3262 3263 bool operator != (const Tuple& other) const 3264 { 3265 return !(_data == other._data); 3266 } 3267 3268 bool operator < (const Tuple& other) const 3269 { 3270 return _data < other._data; 3271 } 3272 3273 private: 3274 Type _data; 3275 }; 3276 3277 3278 template <class T0, 3279 class T1, 3280 class T2, 3281 class T3, 3282 class T4, 3283 class T5, 3284 class T6, 3285 class T7, 3286 class T8, 3287 class T9, 3288 class T10, 3289 class T11, 3290 class T12, 3291 class T13, 3292 class T14, 3293 class T15, 3294 class T16> 3295 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,NullTypeList> 3296 { 3297 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType Type; 3298 3299 enum TupleLengthType 3300 { 3301 length = Type::length 3302 }; 3303 3304 Tuple():_data() 3305 { 3306 } 3307 3308 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3309 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3310 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3311 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3312 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3313 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3314 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3315 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3316 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3317 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3318 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3319 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3320 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3321 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 3322 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 3323 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), 3324 typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16)): 3325 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3326 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3327 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3328 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3329 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3330 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3331 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3332 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3333 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15,T16>::HeadType 3334 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15,T16>::HeadType 3335 (t10, typename TypeListType<T11,T12,T13,T14,T15,T16>::HeadType 3336 (t11, typename TypeListType<T12,T13,T14,T15,T16>::HeadType 3337 (t12, typename TypeListType<T13,T14,T15,T16>::HeadType 3338 (t13, typename TypeListType<T14,T15,T16>::HeadType 3339 (t14, typename TypeListType<T15,T16>::HeadType 3340 (t15, typename TypeListType<T16>::HeadType 3341 (t16, NullTypeList()))))))))))))))))) 3342 { 3343 } 3344 3345 template <int N> 3346 typename TypeGetter<N, Type>::ConstHeadType& get() const 3347 { 3348 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3349 } 3350 3351 template <int N> 3352 typename TypeGetter<N, Type>::HeadType& get() 3353 { 3354 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3355 } 3356 3357 template <int N> 3358 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3359 { 3360 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3361 } 3362 3363 bool operator == (const Tuple& other) const 3364 { 3365 return _data == other._data; 3366 } 3367 3368 bool operator != (const Tuple& other) const 3369 { 3370 return !(_data == other._data); 3371 } 3372 3373 bool operator < (const Tuple& other) const 3374 { 3375 return _data < other._data; 3376 } 3377 3378 private: 3379 Type _data; 3380 }; 3381 3382 3383 template <class T0, 3384 class T1, 3385 class T2, 3386 class T3, 3387 class T4, 3388 class T5, 3389 class T6, 3390 class T7, 3391 class T8, 3392 class T9, 3393 class T10, 3394 class T11, 3395 class T12, 3396 class T13, 3397 class T14, 3398 class T15> 3399 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,NullTypeList> 3400 { 3401 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType Type; 3402 3403 enum TupleLengthType 3404 { 3405 length = Type::length 3406 }; 3407 3408 Tuple():_data() 3409 { 3410 } 3411 3412 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3413 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3414 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3415 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3416 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3417 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3418 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3419 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3420 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3421 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3422 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3423 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3424 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3425 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 3426 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), 3427 typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15)): 3428 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3429 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3430 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3431 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3432 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3433 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3434 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3435 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14,T15>::HeadType 3436 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14,T15>::HeadType 3437 (t9, typename TypeListType<T10,T11,T12,T13,T14,T15>::HeadType 3438 (t10, typename TypeListType<T11,T12,T13,T14,T15>::HeadType 3439 (t11, typename TypeListType<T12,T13,T14,T15>::HeadType 3440 (t12, typename TypeListType<T13,T14,T15>::HeadType 3441 (t13, typename TypeListType<T14,T15>::HeadType 3442 (t14, typename TypeListType<T15>::HeadType 3443 (t15, NullTypeList())))))))))))))))) 3444 { 3445 } 3446 3447 template <int N> 3448 typename TypeGetter<N, Type>::ConstHeadType& get() const 3449 { 3450 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3451 } 3452 3453 template <int N> 3454 typename TypeGetter<N, Type>::HeadType& get() 3455 { 3456 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3457 } 3458 3459 template <int N> 3460 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3461 { 3462 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3463 } 3464 3465 bool operator == (const Tuple& other) const 3466 { 3467 return _data == other._data; 3468 } 3469 3470 bool operator != (const Tuple& other) const 3471 { 3472 return !(_data == other._data); 3473 } 3474 3475 bool operator < (const Tuple& other) const 3476 { 3477 return _data < other._data; 3478 } 3479 3480 private: 3481 Type _data; 3482 }; 3483 3484 3485 template <class T0, 3486 class T1, 3487 class T2, 3488 class T3, 3489 class T4, 3490 class T5, 3491 class T6, 3492 class T7, 3493 class T8, 3494 class T9, 3495 class T10, 3496 class T11, 3497 class T12, 3498 class T13, 3499 class T14> 3500 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,NullTypeList> 3501 { 3502 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType Type; 3503 3504 enum TupleLengthType 3505 { 3506 length = Type::length 3507 }; 3508 3509 Tuple():_data() 3510 { 3511 } 3512 3513 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3514 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3515 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3516 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3517 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3518 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3519 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3520 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3521 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3522 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3523 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3524 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3525 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3526 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), 3527 typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14)): 3528 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3529 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3530 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3531 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3532 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3533 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3534 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13,T14>::HeadType 3535 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13,T14>::HeadType 3536 (t8, typename TypeListType<T9,T10,T11,T12,T13,T14>::HeadType 3537 (t9, typename TypeListType<T10,T11,T12,T13,T14>::HeadType 3538 (t10, typename TypeListType<T11,T12,T13,T14>::HeadType 3539 (t11, typename TypeListType<T12,T13,T14>::HeadType 3540 (t12, typename TypeListType<T13,T14>::HeadType 3541 (t13, typename TypeListType<T14>::HeadType 3542 (t14, NullTypeList()))))))))))))))) 3543 { 3544 } 3545 3546 template <int N> 3547 typename TypeGetter<N, Type>::ConstHeadType& get() const 3548 { 3549 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3550 } 3551 3552 template <int N> 3553 typename TypeGetter<N, Type>::HeadType& get() 3554 { 3555 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3556 } 3557 3558 template <int N> 3559 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3560 { 3561 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3562 } 3563 3564 bool operator == (const Tuple& other) const 3565 { 3566 return _data == other._data; 3567 } 3568 3569 bool operator != (const Tuple& other) const 3570 { 3571 return !(_data == other._data); 3572 } 3573 3574 bool operator < (const Tuple& other) const 3575 { 3576 return _data < other._data; 3577 } 3578 3579 private: 3580 Type _data; 3581 }; 3582 3583 3584 template <class T0, 3585 class T1, 3586 class T2, 3587 class T3, 3588 class T4, 3589 class T5, 3590 class T6, 3591 class T7, 3592 class T8, 3593 class T9, 3594 class T10, 3595 class T11, 3596 class T12, 3597 class T13> 3598 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,NullTypeList> 3599 { 3600 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType Type; 3601 3602 enum TupleLengthType 3603 { 3604 length = Type::length 3605 }; 3606 3607 Tuple():_data() 3608 { 3609 } 3610 3611 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3612 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3613 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3614 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3615 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3616 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3617 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3618 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3619 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3620 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3621 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3622 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3623 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), 3624 typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13)): 3625 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3626 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3627 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3628 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3629 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3630 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12,T13>::HeadType 3631 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12,T13>::HeadType 3632 (t7, typename TypeListType<T8,T9,T10,T11,T12,T13>::HeadType 3633 (t8, typename TypeListType<T9,T10,T11,T12,T13>::HeadType 3634 (t9, typename TypeListType<T10,T11,T12,T13>::HeadType 3635 (t10, typename TypeListType<T11,T12,T13>::HeadType 3636 (t11, typename TypeListType<T12,T13>::HeadType 3637 (t12, typename TypeListType<T13>::HeadType 3638 (t13, NullTypeList())))))))))))))) 3639 { 3640 } 3641 3642 template <int N> 3643 typename TypeGetter<N, Type>::ConstHeadType& get() const 3644 { 3645 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3646 } 3647 3648 template <int N> 3649 typename TypeGetter<N, Type>::HeadType& get() 3650 { 3651 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3652 } 3653 3654 template <int N> 3655 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3656 { 3657 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3658 } 3659 3660 bool operator == (const Tuple& other) const 3661 { 3662 return _data == other._data; 3663 } 3664 3665 bool operator != (const Tuple& other) const 3666 { 3667 return !(_data == other._data); 3668 } 3669 3670 bool operator < (const Tuple& other) const 3671 { 3672 return _data < other._data; 3673 } 3674 3675 private: 3676 Type _data; 3677 }; 3678 3679 3680 template <class T0, 3681 class T1, 3682 class T2, 3683 class T3, 3684 class T4, 3685 class T5, 3686 class T6, 3687 class T7, 3688 class T8, 3689 class T9, 3690 class T10, 3691 class T11, 3692 class T12> 3693 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12, NullTypeList> 3694 { 3695 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>::HeadType Type; 3696 3697 enum TupleLengthType 3698 { 3699 length = Type::length 3700 }; 3701 3702 Tuple():_data() 3703 { 3704 } 3705 3706 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3707 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3708 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3709 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3710 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3711 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3712 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3713 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3714 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3715 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3716 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3717 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), 3718 typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12)): 3719 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>::HeadType 3720 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>::HeadType 3721 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11,T12>::HeadType 3722 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11,T12>::HeadType 3723 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11,T12>::HeadType 3724 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11,T12>::HeadType 3725 (t6, typename TypeListType<T7,T8,T9,T10,T11,T12>::HeadType 3726 (t7, typename TypeListType<T8,T9,T10,T11,T12>::HeadType 3727 (t8, typename TypeListType<T9,T10,T11,T12>::HeadType 3728 (t9, typename TypeListType<T10,T11,T12>::HeadType 3729 (t10, typename TypeListType<T11,T12>::HeadType 3730 (t11, typename TypeListType<T12>::HeadType 3731 (t12, NullTypeList()))))))))))))) 3732 { 3733 } 3734 3735 template <int N> 3736 typename TypeGetter<N, Type>::ConstHeadType& get() const 3737 { 3738 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3739 } 3740 3741 template <int N> 3742 typename TypeGetter<N, Type>::HeadType& get() 3743 { 3744 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3745 } 3746 3747 template <int N> 3748 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3749 { 3750 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3751 } 3752 3753 bool operator == (const Tuple& other) const 3754 { 3755 return _data == other._data; 3756 } 3757 3758 bool operator != (const Tuple& other) const 3759 { 3760 return !(_data == other._data); 3761 } 3762 3763 bool operator < (const Tuple& other) const 3764 { 3765 return _data < other._data; 3766 } 3767 3768 private: 3769 Type _data; 3770 }; 3771 3772 3773 template <class T0, 3774 class T1, 3775 class T2, 3776 class T3, 3777 class T4, 3778 class T5, 3779 class T6, 3780 class T7, 3781 class T8, 3782 class T9, 3783 class T10, 3784 class T11> 3785 struct Tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,NullTypeList> 3786 { 3787 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::HeadType Type; 3788 3789 enum TupleLengthType 3790 { 3791 length = Type::length 3792 }; 3793 3794 Tuple():_data() 3795 { 3796 } 3797 3798 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3799 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3800 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3801 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3802 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3803 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3804 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3805 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3806 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3807 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3808 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), 3809 typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11)): 3810 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::HeadType 3811 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10,T11>::HeadType 3812 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10,T11>::HeadType 3813 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10,T11>::HeadType 3814 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10,T11>::HeadType 3815 (t5, typename TypeListType<T6,T7,T8,T9,T10,T11>::HeadType 3816 (t6, typename TypeListType<T7,T8,T9,T10,T11>::HeadType 3817 (t7, typename TypeListType<T8,T9,T10,T11>::HeadType 3818 (t8, typename TypeListType<T9,T10,T11>::HeadType 3819 (t9, typename TypeListType<T10,T11>::HeadType 3820 (t10, typename TypeListType<T11>::HeadType 3821 (t11, NullTypeList())))))))))))) 3822 { 3823 } 3824 3825 template <int N> 3826 typename TypeGetter<N, Type>::ConstHeadType& get() const 3827 { 3828 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3829 } 3830 3831 template <int N> 3832 typename TypeGetter<N, Type>::HeadType& get() 3833 { 3834 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3835 } 3836 3837 template <int N> 3838 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3839 { 3840 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3841 } 3842 3843 bool operator == (const Tuple& other) const 3844 { 3845 return _data == other._data; 3846 } 3847 3848 bool operator != (const Tuple& other) const 3849 { 3850 return !(_data == other._data); 3851 } 3852 3853 bool operator < (const Tuple& other) const 3854 { 3855 return _data < other._data; 3856 } 3857 3858 private: 3859 Type _data; 3860 }; 3861 3862 3863 template <class T0, 3864 class T1, 3865 class T2, 3866 class T3, 3867 class T4, 3868 class T5, 3869 class T6, 3870 class T7, 3871 class T8, 3872 class T9, 3873 class T10> 3874 struct Tuple<T0, T1,T2,T3,T4,T5,T6,T7,T8,T9,T10, NullTypeList> 3875 { 3876 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::HeadType Type; 3877 3878 enum TupleLengthType 3879 { 3880 length = Type::length 3881 }; 3882 3883 Tuple():_data() 3884 { 3885 } 3886 3887 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3888 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3889 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3890 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3891 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3892 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3893 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3894 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3895 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3896 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), 3897 typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10)): 3898 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>::HeadType 3899 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9,T10>::HeadType 3900 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9,T10>::HeadType 3901 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9,T10>::HeadType 3902 (t4, typename TypeListType<T5,T6,T7,T8,T9,T10>::HeadType 3903 (t5, typename TypeListType<T6,T7,T8,T9,T10>::HeadType 3904 (t6, typename TypeListType<T7,T8,T9,T10>::HeadType 3905 (t7, typename TypeListType<T8,T9,T10>::HeadType 3906 (t8, typename TypeListType<T9,T10>::HeadType 3907 (t9, typename TypeListType<T10>::HeadType 3908 (t10, NullTypeList()))))))))))) 3909 { 3910 } 3911 3912 template <int N> 3913 typename TypeGetter<N, Type>::ConstHeadType& get() const 3914 { 3915 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3916 } 3917 3918 template <int N> 3919 typename TypeGetter<N, Type>::HeadType& get() 3920 { 3921 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 3922 } 3923 3924 template <int N> 3925 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 3926 { 3927 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 3928 } 3929 3930 bool operator == (const Tuple& other) const 3931 { 3932 return _data == other._data; 3933 } 3934 3935 bool operator != (const Tuple& other) const 3936 { 3937 return !(_data == other._data); 3938 } 3939 3940 bool operator < (const Tuple& other) const 3941 { 3942 return _data < other._data; 3943 } 3944 3945 private: 3946 Type _data; 3947 }; 3948 3949 3950 template <class T0, 3951 class T1, 3952 class T2, 3953 class T3, 3954 class T4, 3955 class T5, 3956 class T6, 3957 class T7, 3958 class T8, 3959 class T9> 3960 struct Tuple<T0, T1,T2,T3,T4,T5,T6,T7,T8,T9, NullTypeList> 3961 { 3962 typedef typename TypeListType<T0, T1,T2,T3,T4,T5,T6,T7,T8,T9>::HeadType Type; 3963 3964 enum TupleLengthType 3965 { 3966 length = Type::length 3967 }; 3968 3969 Tuple():_data() 3970 { 3971 } 3972 3973 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 3974 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 3975 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 3976 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 3977 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 3978 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 3979 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 3980 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 3981 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), 3982 typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9)): 3983 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8,T9>::HeadType 3984 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8,T9>::HeadType 3985 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8,T9>::HeadType 3986 (t3, typename TypeListType<T4,T5,T6,T7,T8,T9>::HeadType 3987 (t4, typename TypeListType<T5,T6,T7,T8,T9>::HeadType 3988 (t5, typename TypeListType<T6,T7,T8,T9>::HeadType 3989 (t6, typename TypeListType<T7,T8,T9>::HeadType 3990 (t7, typename TypeListType<T8,T9>::HeadType 3991 (t8, typename TypeListType<T9>::HeadType 3992 (t9, NullTypeList())))))))))) 3993 { 3994 } 3995 3996 template <int N> 3997 typename TypeGetter<N, Type>::ConstHeadType& get() const 3998 { 3999 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4000 } 4001 4002 template <int N> 4003 typename TypeGetter<N, Type>::HeadType& get() 4004 { 4005 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4006 } 4007 4008 template <int N> 4009 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4010 { 4011 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4012 } 4013 4014 bool operator == (const Tuple& other) const 4015 { 4016 return _data == other._data; 4017 } 4018 4019 bool operator != (const Tuple& other) const 4020 { 4021 return !(_data == other._data); 4022 } 4023 4024 bool operator < (const Tuple& other) const 4025 { 4026 return _data < other._data; 4027 } 4028 4029 private: 4030 Type _data; 4031 }; 4032 4033 4034 template <class T0, 4035 class T1, 4036 class T2, 4037 class T3, 4038 class T4, 4039 class T5, 4040 class T6, 4041 class T7, 4042 class T8> 4043 struct Tuple<T0, T1,T2,T3,T4,T5,T6,T7,T8, NullTypeList> 4044 { 4045 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7,T8>::HeadType Type; 4046 4047 enum TupleLengthType 4048 { 4049 length = Type::length 4050 }; 4051 4052 Tuple():_data() 4053 { 4054 } 4055 4056 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4057 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4058 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4059 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 4060 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 4061 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 4062 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 4063 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), 4064 typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8)): 4065 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7,T8>::HeadType 4066 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7,T8>::HeadType 4067 (t2, typename TypeListType<T3,T4,T5,T6,T7,T8>::HeadType 4068 (t3, typename TypeListType<T4,T5,T6,T7,T8>::HeadType 4069 (t4, typename TypeListType<T5,T6,T7,T8>::HeadType 4070 (t5, typename TypeListType<T6,T7,T8>::HeadType 4071 (t6, typename TypeListType<T7,T8>::HeadType 4072 (t7, typename TypeListType<T8>::HeadType 4073 (t8, NullTypeList()))))))))) 4074 { 4075 } 4076 4077 template <int N> 4078 typename TypeGetter<N, Type>::ConstHeadType& get() const 4079 { 4080 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4081 } 4082 4083 template <int N> 4084 typename TypeGetter<N, Type>::HeadType& get() 4085 { 4086 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4087 } 4088 4089 template <int N> 4090 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4091 { 4092 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4093 } 4094 4095 bool operator == (const Tuple& other) const 4096 { 4097 return _data == other._data; 4098 } 4099 4100 bool operator != (const Tuple& other) const 4101 { 4102 return !(_data == other._data); 4103 } 4104 4105 bool operator < (const Tuple& other) const 4106 { 4107 return _data < other._data; 4108 } 4109 4110 private: 4111 Type _data; 4112 }; 4113 4114 4115 template <class T0, 4116 class T1, 4117 class T2, 4118 class T3, 4119 class T4, 4120 class T5, 4121 class T6, 4122 class T7> 4123 struct Tuple<T0, T1,T2,T3,T4,T5,T6,T7, NullTypeList> 4124 { 4125 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6,T7>::HeadType Type; 4126 4127 enum TupleLengthType 4128 { 4129 length = Type::length 4130 }; 4131 4132 Tuple():_data() 4133 { 4134 } 4135 4136 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4137 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4138 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4139 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 4140 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 4141 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 4142 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), 4143 typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7)): 4144 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6,T7>::HeadType 4145 (t1, typename TypeListType<T2,T3,T4,T5,T6,T7>::HeadType 4146 (t2, typename TypeListType<T3,T4,T5,T6,T7>::HeadType 4147 (t3, typename TypeListType<T4,T5,T6,T7>::HeadType 4148 (t4, typename TypeListType<T5,T6,T7>::HeadType 4149 (t5, typename TypeListType<T6,T7>::HeadType 4150 (t6, typename TypeListType<T7>::HeadType 4151 (t7, NullTypeList())))))))) 4152 { 4153 } 4154 4155 template <int N> 4156 typename TypeGetter<N, Type>::ConstHeadType& get() const 4157 { 4158 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4159 } 4160 4161 template <int N> 4162 typename TypeGetter<N, Type>::HeadType& get() 4163 { 4164 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4165 } 4166 4167 template <int N> 4168 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4169 { 4170 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4171 } 4172 4173 bool operator == (const Tuple& other) const 4174 { 4175 return _data == other._data; 4176 } 4177 4178 bool operator != (const Tuple& other) const 4179 { 4180 return !(_data == other._data); 4181 } 4182 4183 bool operator < (const Tuple& other) const 4184 { 4185 return _data < other._data; 4186 } 4187 4188 private: 4189 Type _data; 4190 }; 4191 4192 4193 template <class T0, 4194 class T1, 4195 class T2, 4196 class T3, 4197 class T4, 4198 class T5, 4199 class T6> 4200 struct Tuple<T0, T1,T2,T3,T4,T5,T6, NullTypeList> 4201 { 4202 typedef typename TypeListType<T0,T1,T2,T3,T4,T5,T6>::HeadType Type; 4203 4204 enum TupleLengthType 4205 { 4206 length = Type::length 4207 }; 4208 4209 Tuple():_data() 4210 { 4211 } 4212 4213 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4214 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4215 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4216 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 4217 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 4218 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), 4219 typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6)): 4220 _data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6>::HeadType 4221 (t1, typename TypeListType<T2,T3,T4,T5,T6>::HeadType 4222 (t2, typename TypeListType<T3,T4,T5,T6>::HeadType 4223 (t3, typename TypeListType<T4,T5,T6>::HeadType 4224 (t4, typename TypeListType<T5,T6>::HeadType 4225 (t5, typename TypeListType<T6>::HeadType 4226 (t6, NullTypeList()))))))) 4227 { 4228 } 4229 4230 template <int N> 4231 typename TypeGetter<N, Type>::ConstHeadType& get() const 4232 { 4233 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4234 } 4235 4236 template <int N> 4237 typename TypeGetter<N, Type>::HeadType& get() 4238 { 4239 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4240 } 4241 4242 template <int N> 4243 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4244 { 4245 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4246 } 4247 4248 bool operator == (const Tuple& other) const 4249 { 4250 return _data == other._data; 4251 } 4252 4253 bool operator != (const Tuple& other) const 4254 { 4255 return !(_data == other._data); 4256 } 4257 4258 bool operator < (const Tuple& other) const 4259 { 4260 return _data < other._data; 4261 } 4262 4263 private: 4264 Type _data; 4265 }; 4266 4267 4268 template <class T0, 4269 class T1, 4270 class T2, 4271 class T3, 4272 class T4, 4273 class T5> 4274 struct Tuple<T0, T1,T2,T3,T4,T5, NullTypeList> 4275 { 4276 typedef typename TypeListType<T0,T1,T2,T3,T4,T5>::HeadType Type; 4277 4278 enum TupleLengthType 4279 { 4280 length = Type::length 4281 }; 4282 4283 Tuple():_data() 4284 { 4285 } 4286 4287 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4288 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4289 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4290 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 4291 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), 4292 typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5)): 4293 _data(t0, typename TypeListType<T1,T2,T3,T4,T5>::HeadType 4294 (t1, typename TypeListType<T2,T3,T4,T5>::HeadType 4295 (t2, typename TypeListType<T3,T4,T5>::HeadType 4296 (t3, typename TypeListType<T4,T5>::HeadType 4297 (t4, typename TypeListType<T5>::HeadType 4298 (t5, NullTypeList())))))) 4299 { 4300 } 4301 4302 template <int N> 4303 typename TypeGetter<N, Type>::ConstHeadType& get() const 4304 { 4305 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4306 } 4307 4308 template <int N> 4309 typename TypeGetter<N, Type>::HeadType& get() 4310 { 4311 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4312 } 4313 4314 template <int N> 4315 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4316 { 4317 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4318 } 4319 4320 bool operator == (const Tuple& other) const 4321 { 4322 return _data == other._data; 4323 } 4324 4325 bool operator != (const Tuple& other) const 4326 { 4327 return !(_data == other._data); 4328 } 4329 4330 bool operator < (const Tuple& other) const 4331 { 4332 return _data < other._data; 4333 } 4334 4335 private: 4336 Type _data; 4337 }; 4338 4339 4340 template <class T0, 4341 class T1, 4342 class T2, 4343 class T3, 4344 class T4> 4345 struct Tuple<T0, T1,T2,T3,T4, NullTypeList> 4346 { 4347 typedef typename TypeListType<T0,T1,T2,T3,T4>::HeadType Type; 4348 4349 enum TupleLengthType 4350 { 4351 length = Type::length 4352 }; 4353 4354 Tuple():_data() 4355 { 4356 } 4357 4358 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4359 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4360 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4361 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), 4362 typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4)): 4363 _data(t0, typename TypeListType<T1,T2,T3,T4>::HeadType 4364 (t1, typename TypeListType<T2,T3,T4>::HeadType 4365 (t2, typename TypeListType<T3,T4>::HeadType 4366 (t3, typename TypeListType<T4>::HeadType 4367 (t4, NullTypeList()))))) 4368 { 4369 } 4370 4371 template <int N> 4372 typename TypeGetter<N, Type>::ConstHeadType& get() const 4373 { 4374 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4375 } 4376 4377 template <int N> 4378 typename TypeGetter<N, Type>::HeadType& get() 4379 { 4380 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4381 } 4382 4383 template <int N> 4384 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4385 { 4386 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4387 } 4388 4389 bool operator == (const Tuple& other) const 4390 { 4391 return _data == other._data; 4392 } 4393 4394 bool operator != (const Tuple& other) const 4395 { 4396 return !(_data == other._data); 4397 } 4398 4399 bool operator < (const Tuple& other) const 4400 { 4401 return _data < other._data; 4402 } 4403 4404 private: 4405 Type _data; 4406 }; 4407 4408 4409 template <class T0, 4410 class T1, 4411 class T2, 4412 class T3> 4413 struct Tuple<T0, T1,T2,T3, NullTypeList> 4414 { 4415 typedef typename TypeListType<T0,T1,T2,T3>::HeadType Type; 4416 4417 enum TupleLengthType 4418 { 4419 length = Type::length 4420 }; 4421 4422 Tuple():_data() 4423 { 4424 } 4425 4426 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4427 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4428 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), 4429 typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3)): 4430 _data(t0, typename TypeListType<T1,T2,T3>::HeadType 4431 (t1, typename TypeListType<T2,T3>::HeadType 4432 (t2, typename TypeListType<T3>::HeadType 4433 (t3, NullTypeList())))) 4434 { 4435 } 4436 4437 template <int N> 4438 typename TypeGetter<N, Type>::ConstHeadType& get() const 4439 { 4440 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4441 } 4442 4443 template <int N> 4444 typename TypeGetter<N, Type>::HeadType& get() 4445 { 4446 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4447 } 4448 4449 template <int N> 4450 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4451 { 4452 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4453 } 4454 4455 bool operator == (const Tuple& other) const 4456 { 4457 return _data == other._data; 4458 } 4459 4460 bool operator != (const Tuple& other) const 4461 { 4462 return !(_data == other._data); 4463 } 4464 4465 bool operator < (const Tuple& other) const 4466 { 4467 return _data < other._data; 4468 } 4469 4470 private: 4471 Type _data; 4472 }; 4473 4474 4475 template <class T0, 4476 class T1, 4477 class T2> 4478 struct Tuple<T0, T1,T2, NullTypeList> 4479 { 4480 typedef typename TypeListType<T0,T1,T2>::HeadType Type; 4481 4482 enum TupleLengthType 4483 { 4484 length = Type::length 4485 }; 4486 4487 Tuple():_data() 4488 { 4489 } 4490 4491 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4492 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), 4493 typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2)): 4494 _data(t0, typename TypeListType<T1,T2>::HeadType 4495 (t1, typename TypeListType<T2>::HeadType 4496 (t2, NullTypeList()))) 4497 { 4498 } 4499 4500 template <int N> 4501 typename TypeGetter<N, Type>::ConstHeadType& get() const 4502 { 4503 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4504 } 4505 4506 template <int N> 4507 typename TypeGetter<N, Type>::HeadType& get() 4508 { 4509 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4510 } 4511 4512 template <int N> 4513 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4514 { 4515 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4516 } 4517 4518 bool operator == (const Tuple& other) const 4519 { 4520 return _data == other._data; 4521 } 4522 4523 bool operator != (const Tuple& other) const 4524 { 4525 return !(_data == other._data); 4526 } 4527 4528 bool operator < (const Tuple& other) const 4529 { 4530 return _data < other._data; 4531 } 4532 4533 private: 4534 Type _data; 4535 }; 4536 4537 4538 template <class T0, 4539 class T1> 4540 struct Tuple<T0, T1, NullTypeList> 4541 { 4542 typedef typename TypeListType<T0,T1>::HeadType Type; 4543 4544 enum TupleLengthType 4545 { 4546 length = Type::length 4547 }; 4548 4549 Tuple():_data() 4550 { 4551 } 4552 4553 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0, 4554 typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1)): 4555 _data(t0, typename TypeListType<T1>::HeadType(t1, NullTypeList())) 4556 { 4557 } 4558 4559 template <int N> 4560 typename TypeGetter<N, Type>::ConstHeadType& get() const 4561 { 4562 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4563 } 4564 4565 template <int N> 4566 typename TypeGetter<N, Type>::HeadType& get() 4567 { 4568 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4569 } 4570 4571 template <int N> 4572 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4573 { 4574 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4575 } 4576 4577 bool operator == (const Tuple& other) const 4578 { 4579 return _data == other._data; 4580 } 4581 4582 bool operator != (const Tuple& other) const 4583 { 4584 return !(_data == other._data); 4585 } 4586 4587 bool operator < (const Tuple& other) const 4588 { 4589 return _data < other._data; 4590 } 4591 4592 private: 4593 Type _data; 4594 }; 4595 4596 4597 template <class T0> 4598 struct Tuple<T0, NullTypeList> 4599 { 4600 typedef TypeList<T0, NullTypeList> Type; 4601 4602 enum TupleLengthType 4603 { 4604 length = Type::length 4605 }; 4606 4607 Tuple():_data() 4608 { 4609 } 4610 4611 Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0): 4612 _data(t0, NullTypeList()) 4613 { 4614 } 4615 4616 template <int N> 4617 typename TypeGetter<N, Type>::ConstHeadType& get() const 4618 { 4619 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4620 } 4621 4622 template <int N> 4623 typename TypeGetter<N, Type>::HeadType& get() 4624 { 4625 return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data); 4626 } 4627 4628 template <int N> 4629 void set(typename TypeGetter<N, Type>::ConstHeadType& val) 4630 { 4631 Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; 4632 } 4633 4634 bool operator == (const Tuple& other) const 4635 { 4636 return _data == other._data; 4637 } 4638 4639 bool operator != (const Tuple& other) const 4640 { 4641 return !(_data == other._data); 4642 } 4643 4644 bool operator < (const Tuple& other) const 4645 { 4646 return _data < other._data; 4647 } 4648 4649 private: 4650 Type _data; 4651 }; 4652 4653 4654 } // namespace Poco 4655 4656 4657 #endif // Foundation_Tuple_INCLUDED 4658