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 inline

Tuple();

Tuple inline

Tuple(
    const Tuple & other
);

Tuple inline

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 inline

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

get inline

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

operator != inline

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

operator < inline

bool operator < (
    const Tuple & other
) const;

operator = inline

Tuple & operator = (
    const Tuple & other
);

operator == inline

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

operator TupleType & inline

explicit operator TupleType & ();

operator const TupleType & inline

explicit operator const TupleType & () const;

set inline

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