# Poco

# template < typename T0, typename T1 = NullTypeList, typename T2 = NullTypeList, typename T3 = NullTypeList, typename T4 = NullTypeList, typename T5 = NullTypeList, typename T6 = NullTypeList, typename T7 = NullTypeList, typename T8 = NullTypeList, typename T9 = NullTypeList, typename T10 = NullTypeList, typename T11 = NullTypeList, typename T12 = NullTypeList, typename T13 = NullTypeList, typename T14 = NullTypeList, typename T15 = NullTypeList, typename T16 = NullTypeList, typename T17 = NullTypeList, typename T18 = NullTypeList, typename T19 = NullTypeList, typename T20 = NullTypeList, typename T21 = NullTypeList, typename T22 = NullTypeList, typename T23 = NullTypeList, typename T24 = NullTypeList, typename T25 = NullTypeList, typename T26 = NullTypeList, typename T27 = NullTypeList, typename T28 = NullTypeList, typename T29 = NullTypeList, typename T30 = NullTypeList, typename T31 = NullTypeList, typename T32 = NullTypeList, typename T33 = NullTypeList, typename T34 = NullTypeList, typename T35 = NullTypeList, typename T36 = NullTypeList, typename T37 = NullTypeList, typename T38 = NullTypeList, typename T39 = NullTypeList >

# struct Tuple

Library: Foundation
Package: Core
Header: Poco/Tuple.h

## Description

Tuple - a fixed-size collection of heterogeneous values.

This implementation uses std::tuple internally while maintaining backward compatibility with the original Poco::Tuple API.

Usage:

    Tuple<int, std::string, double> t(42, "hello", 3.14);
    int i = t.get<0>();
    t.set<1>("world");

## Member Summary

Member Functions: get, operator !=, operator <, operator =, operator ==, operator TupleType &, operator const TupleType &, set

## Types Aliases

### TupleType

using TupleType = typename Detail::TypeListToTuple < Type >::Type;

### Type

using Type = 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;

## Enumerations

### TupleLengthType

length = Type::length

## Constructors

### Tuple

Tuple();

### Tuple

Tuple(
const Tuple & other
);

### Tuple

Tuple(
const T0 & t0,
const T1 & t1 = Detail::DefaultValue < T1 >::get (),
const T2 & t2 = Detail::DefaultValue < T2 >::get (),
const T3 & t3 = Detail::DefaultValue < T3 >::get (),
const T4 & t4 = Detail::DefaultValue < T4 >::get (),
const T5 & t5 = Detail::DefaultValue < T5 >::get (),
const T6 & t6 = Detail::DefaultValue < T6 >::get (),
const T7 & t7 = Detail::DefaultValue < T7 >::get (),
const T8 & t8 = Detail::DefaultValue < T8 >::get (),
const T9 & t9 = Detail::DefaultValue < T9 >::get (),
const T10 & t10 = Detail::DefaultValue < T10 >::get (),
const T11 & t11 = Detail::DefaultValue < T11 >::get (),
const T12 & t12 = Detail::DefaultValue < T12 >::get (),
const T13 & t13 = Detail::DefaultValue < T13 >::get (),
const T14 & t14 = Detail::DefaultValue < T14 >::get (),
const T15 & t15 = Detail::DefaultValue < T15 >::get (),
const T16 & t16 = Detail::DefaultValue < T16 >::get (),
const T17 & t17 = Detail::DefaultValue < T17 >::get (),
const T18 & t18 = Detail::DefaultValue < T18 >::get (),
const T19 & t19 = Detail::DefaultValue < T19 >::get (),
const T20 & t20 = Detail::DefaultValue < T20 >::get (),
const T21 & t21 = Detail::DefaultValue < T21 >::get (),
const T22 & t22 = Detail::DefaultValue < T22 >::get (),
const T23 & t23 = Detail::DefaultValue < T23 >::get (),
const T24 & t24 = Detail::DefaultValue < T24 >::get (),
const T25 & t25 = Detail::DefaultValue < T25 >::get (),
const T26 & t26 = Detail::DefaultValue < T26 >::get (),
const T27 & t27 = Detail::DefaultValue < T27 >::get (),
const T28 & t28 = Detail::DefaultValue < T28 >::get (),
const T29 & t29 = Detail::DefaultValue < T29 >::get (),
const T30 & t30 = Detail::DefaultValue < T30 >::get (),
const T31 & t31 = Detail::DefaultValue < T31 >::get (),
const T32 & t32 = Detail::DefaultValue < T32 >::get (),
const T33 & t33 = Detail::DefaultValue < T33 >::get (),
const T34 & t34 = Detail::DefaultValue < T34 >::get (),
const T35 & t35 = Detail::DefaultValue < T35 >::get (),
const T36 & t36 = Detail::DefaultValue < T36 >::get (),
const T37 & t37 = Detail::DefaultValue < T37 >::get (),
const T38 & t38 = Detail::DefaultValue < T38 >::get (),
const T39 & t39 = Detail::DefaultValue < T39 >::get ()
);

## Member Functions

### get

template < std::size_t N > typename TypeGetter < N, Type >::HeadType & get();

### get

template < std::size_t N > const typename TypeGetter < N, Type >::HeadType & get() const;

### operator !=

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

### operator <

bool operator < (
const Tuple & other
) const;

### operator =

Tuple & operator = (
const Tuple & other
);

### operator ==

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

### operator TupleType &

explicit operator TupleType & ();

### operator const TupleType &

explicit operator const TupleType & () const;

### set

template < std::size_t N > void set(
const typename TypeGetter < N, Type >::HeadType & val
);