template struct Poco::Tuple

#include <Tuple.h>

template <
    class T0,
    class T1 = NullTypeList,
    class T2 = NullTypeList,
    class T3 = NullTypeList,
    class T4 = NullTypeList,
    class T5 = NullTypeList,
    class T6 = NullTypeList,
    class T7 = NullTypeList,
    class T8 = NullTypeList,
    class T9 = NullTypeList,
    class T10 = NullTypeList,
    class T11 = NullTypeList,
    class T12 = NullTypeList,
    class T13 = NullTypeList,
    class T14 = NullTypeList,
    class T15 = NullTypeList,
    class T16 = NullTypeList,
    class T17 = NullTypeList,
    class T18 = NullTypeList,
    class T19 = NullTypeList
    >
struct Tuple
{
    // typedefs

    typedef TypeListType<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>::HeadType Type;

    // enums

    enum TupleLengthType;

    // construction

    Tuple();

    Tuple(
        typename TypeWrapper<T0>::CONSTTYPE& t0,
        typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1),
        typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2),
        typename TypeWrapper<T3>::CONSTTYPE& t3 = POCO_TYPEWRAPPER_DEFAULTVALUE(T3),
        typename TypeWrapper<T4>::CONSTTYPE& t4 = POCO_TYPEWRAPPER_DEFAULTVALUE(T4),
        typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5),
        typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6),
        typename TypeWrapper<T7>::CONSTTYPE& t7 = POCO_TYPEWRAPPER_DEFAULTVALUE(T7),
        typename TypeWrapper<T8>::CONSTTYPE& t8 = POCO_TYPEWRAPPER_DEFAULTVALUE(T8),
        typename TypeWrapper<T9>::CONSTTYPE& t9 = POCO_TYPEWRAPPER_DEFAULTVALUE(T9),
        typename TypeWrapper<T10>::CONSTTYPE& t10 = POCO_TYPEWRAPPER_DEFAULTVALUE(T10),
        typename TypeWrapper<T11>::CONSTTYPE& t11 = POCO_TYPEWRAPPER_DEFAULTVALUE(T11),
        typename TypeWrapper<T12>::CONSTTYPE& t12 = POCO_TYPEWRAPPER_DEFAULTVALUE(T12),
        typename TypeWrapper<T13>::CONSTTYPE& t13 = POCO_TYPEWRAPPER_DEFAULTVALUE(T13),
        typename TypeWrapper<T14>::CONSTTYPE& t14 = POCO_TYPEWRAPPER_DEFAULTVALUE(T14),
        typename TypeWrapper<T15>::CONSTTYPE& t15 = POCO_TYPEWRAPPER_DEFAULTVALUE(T15),
        typename TypeWrapper<T16>::CONSTTYPE& t16 = POCO_TYPEWRAPPER_DEFAULTVALUE(T16),
        typename TypeWrapper<T17>::CONSTTYPE& t17 = POCO_TYPEWRAPPER_DEFAULTVALUE(T17),
        typename TypeWrapper<T18>::CONSTTYPE& t18 = POCO_TYPEWRAPPER_DEFAULTVALUE(T18),
        typename TypeWrapper<T19>::CONSTTYPE& t19 = POCO_TYPEWRAPPER_DEFAULTVALUE(T19)
        );

    // methods

    template <int N>
    TypeGetter<N, Type>::ConstHeadType&
    get() const;

    template <int N>
    TypeGetter<N, Type>::HeadType&
    get();

    template <int N>
    void
    set(typename TypeGetter<N, Type>::ConstHeadType& val);

    bool
    operator==(const Tuple& other) const;

    bool
    operator!=(const Tuple& other) const;

    bool
    operator<(const Tuple& other) const;
};

// direct descendants

template <
    class T0,
    class T1 = NullTypeList,
    class T2 = NullTypeList,
    class T3 = NullTypeList,
    class T4 = NullTypeList,
    class T5 = NullTypeList,
    class T6 = NullTypeList,
    class T7 = NullTypeList,
    class T8 = NullTypeList,
    class T9 = NullTypeList,
    class T10 = NullTypeList,
    class T11 = NullTypeList,
    class T12 = NullTypeList,
    class T13 = NullTypeList,
    class T14 = NullTypeList,
    class T15 = NullTypeList,
    class T16 = NullTypeList,
    class T17 = NullTypeList,
    class T18 = NullTypeList,
    class T19 = NullTypeList
    >
struct NamedTuple;