// // Tuple.h // // $Id: //poco/1.4/Foundation/include/Poco/Tuple.h#1 $ // // Library: Foundation // Package: Core // Module: Tuple // // Definition of the Tuple class. // // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #ifndef Foundation_Tuple_INCLUDED #define Foundation_Tuple_INCLUDED #include "Poco/Foundation.h" #include "Poco/TypeList.h" namespace Poco { #if defined(_MSC_VER) #define POCO_TYPEWRAPPER_DEFAULTVALUE(T) TypeWrapper::TYPE() #else #define POCO_TYPEWRAPPER_DEFAULTVALUE(T) typename TypeWrapper::TYPE() #endif template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), typename TypeWrapper::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), typename TypeWrapper::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), typename TypeWrapper::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), typename TypeWrapper::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18), typename TypeWrapper::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, typename TypeListType::HeadType (t15, typename TypeListType::HeadType (t16, typename TypeListType::HeadType (t17, typename TypeListType::HeadType (t18, typename TypeListType::HeadType (t19, NullTypeList())))))))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), typename TypeWrapper::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), typename TypeWrapper::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), typename TypeWrapper::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17), typename TypeWrapper::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, typename TypeListType::HeadType (t15, typename TypeListType::HeadType (t16, typename TypeListType::HeadType (t17, typename TypeListType::HeadType (t18, NullTypeList()))))))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), typename TypeWrapper::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), typename TypeWrapper::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16), typename TypeWrapper::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, typename TypeListType::HeadType (t15, typename TypeListType::HeadType (t16, typename TypeListType::HeadType (t17, NullTypeList())))))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), typename TypeWrapper::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15), typename TypeWrapper::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, typename TypeListType::HeadType (t15, typename TypeListType::HeadType (t16, NullTypeList()))))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14), typename TypeWrapper::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, typename TypeListType::HeadType (t15, NullTypeList())))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13), typename TypeWrapper::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, typename TypeListType::HeadType (t14, NullTypeList()))))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12), typename TypeWrapper::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, typename TypeListType::HeadType (t13, NullTypeList())))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11), typename TypeWrapper::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, typename TypeListType::HeadType (t12, NullTypeList()))))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10), typename TypeWrapper::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, typename TypeListType::HeadType (t11, NullTypeList())))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9), typename TypeWrapper::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, typename TypeListType::HeadType (t10, NullTypeList()))))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8), typename TypeWrapper::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, typename TypeListType::HeadType (t9, NullTypeList())))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7), typename TypeWrapper::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, typename TypeListType::HeadType (t8, NullTypeList()))))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6), typename TypeWrapper::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, typename TypeListType::HeadType (t7, NullTypeList())))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5), typename TypeWrapper::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, typename TypeListType::HeadType (t6, NullTypeList()))))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4), typename TypeWrapper::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, typename TypeListType::HeadType (t5, NullTypeList())))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3), typename TypeWrapper::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, typename TypeListType::HeadType (t4, NullTypeList()))))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2), typename TypeWrapper::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, typename TypeListType::HeadType (t3, NullTypeList())))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1), typename TypeWrapper::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2)): _data(t0, typename TypeListType::HeadType (t1, typename TypeListType::HeadType (t2, NullTypeList()))) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef typename TypeListType::HeadType Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0, typename TypeWrapper::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1)): _data(t0, typename TypeListType::HeadType(t1, NullTypeList())) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; template struct Tuple { typedef TypeList Type; enum TupleLengthType { length = Type::length }; Tuple():_data() { } Tuple(typename TypeWrapper::CONSTTYPE& t0): _data(t0, NullTypeList()) { } template typename TypeGetter::ConstHeadType& get() const { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template typename TypeGetter::HeadType& get() { return Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data); } template void set(typename TypeGetter::ConstHeadType& val) { Getter::template get::HeadType, typename Type::HeadType, typename Type::TailType>(_data) = val; } bool operator == (const Tuple& other) const { return _data == other._data; } bool operator != (const Tuple& other) const { return !(_data == other._data); } bool operator < (const Tuple& other) const { return _data < other._data; } private: Type _data; }; } // namespace Poco #endif // Foundation_Tuple_INCLUDED