# Poco

# 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, class T20 = NullTypeList, class T21 = NullTypeList, class T22 = NullTypeList, class T23 = NullTypeList, class T24 = NullTypeList, class T25 = NullTypeList, class T26 = NullTypeList, class T27 = NullTypeList, class T28 = NullTypeList, class T29 = NullTypeList, class T30 = NullTypeList, class T31 = NullTypeList, class T32 = NullTypeList, class T33 = NullTypeList, class T34 = NullTypeList, class T35 = NullTypeList, class T36 = NullTypeList, class T37 = NullTypeList, class T38 = NullTypeList, class T39 = NullTypeList >

# struct NamedTuple

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

## Inheritance

Direct Base Classes: 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, T39 >

All Base Classes: 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, T39 >

## Member Summary

Member Functions: get, getName, names, operator !=, operator <, operator ==, operator [], set, setName

## Types Aliases

### NameVec

using NameVec = std::vector < std::string >;

### NameVecPtr

using NameVecPtr = SharedPtr < NameVec >;

### TupleType

using TupleType = 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, T39 >;

### Type

using Type = typename 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, T39 >::Type;

## Constructors

### NamedTuple

NamedTuple();

### NamedTuple

NamedTuple(
const NameVecPtr & rNames
);

### NamedTuple

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

### NamedTuple

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

### NamedTuple

NamedTuple(
const std::string & n0,
typename TypeWrapper < T0 >::CONSTTYPE & t0,
const std::string & n1 = "B",
typename TypeWrapper < T1 >::CONSTTYPE & t1 = Detail::DefaultValue < T1 >::get (),
const std::string & n2 = "C",
typename TypeWrapper < T2 >::CONSTTYPE & t2 = Detail::DefaultValue < T2 >::get (),
const std::string & n3 = "D",
typename TypeWrapper < T3 >::CONSTTYPE & t3 = Detail::DefaultValue < T3 >::get (),
const std::string & n4 = "E",
typename TypeWrapper < T4 >::CONSTTYPE & t4 = Detail::DefaultValue < T4 >::get (),
const std::string & n5 = "F",
typename TypeWrapper < T5 >::CONSTTYPE & t5 = Detail::DefaultValue < T5 >::get (),
const std::string & n6 = "G",
typename TypeWrapper < T6 >::CONSTTYPE & t6 = Detail::DefaultValue < T6 >::get (),
const std::string & n7 = "H",
typename TypeWrapper < T7 >::CONSTTYPE & t7 = Detail::DefaultValue < T7 >::get (),
const std::string & n8 = "I",
typename TypeWrapper < T8 >::CONSTTYPE & t8 = Detail::DefaultValue < T8 >::get (),
const std::string & n9 = "J",
typename TypeWrapper < T9 >::CONSTTYPE & t9 = Detail::DefaultValue < T9 >::get (),
const std::string & n10 = "K",
typename TypeWrapper < T10 >::CONSTTYPE & t10 = Detail::DefaultValue < T10 >::get (),
const std::string & n11 = "L",
typename TypeWrapper < T11 >::CONSTTYPE & t11 = Detail::DefaultValue < T11 >::get (),
const std::string & n12 = "M",
typename TypeWrapper < T12 >::CONSTTYPE & t12 = Detail::DefaultValue < T12 >::get (),
const std::string & n13 = "N",
typename TypeWrapper < T13 >::CONSTTYPE & t13 = Detail::DefaultValue < T13 >::get (),
const std::string & n14 = "O",
typename TypeWrapper < T14 >::CONSTTYPE & t14 = Detail::DefaultValue < T14 >::get (),
const std::string & n15 = "P",
typename TypeWrapper < T15 >::CONSTTYPE & t15 = Detail::DefaultValue < T15 >::get (),
const std::string & n16 = "Q",
typename TypeWrapper < T16 >::CONSTTYPE & t16 = Detail::DefaultValue < T16 >::get (),
const std::string & n17 = "R",
typename TypeWrapper < T17 >::CONSTTYPE & t17 = Detail::DefaultValue < T17 >::get (),
const std::string & n18 = "S",
typename TypeWrapper < T18 >::CONSTTYPE & t18 = Detail::DefaultValue < T18 >::get (),
const std::string & n19 = "T",
typename TypeWrapper < T19 >::CONSTTYPE & t19 = Detail::DefaultValue < T19 >::get (),
const std::string & n20 = "U",
typename TypeWrapper < T20 >::CONSTTYPE & t20 = Detail::DefaultValue < T20 >::get (),
const std::string & n21 = "V",
typename TypeWrapper < T21 >::CONSTTYPE & t21 = Detail::DefaultValue < T21 >::get (),
const std::string & n22 = "W",
typename TypeWrapper < T22 >::CONSTTYPE & t22 = Detail::DefaultValue < T22 >::get (),
const std::string & n23 = "X",
typename TypeWrapper < T23 >::CONSTTYPE & t23 = Detail::DefaultValue < T23 >::get (),
const std::string & n24 = "Y",
typename TypeWrapper < T24 >::CONSTTYPE & t24 = Detail::DefaultValue < T24 >::get (),
const std::string & n25 = "Z",
typename TypeWrapper < T25 >::CONSTTYPE & t25 = Detail::DefaultValue < T25 >::get (),
const std::string & n26 = "A1",
typename TypeWrapper < T26 >::CONSTTYPE & t26 = Detail::DefaultValue < T26 >::get (),
const std::string & n27 = "B1",
typename TypeWrapper < T27 >::CONSTTYPE & t27 = Detail::DefaultValue < T27 >::get (),
const std::string & n28 = "C1",
typename TypeWrapper < T28 >::CONSTTYPE & t28 = Detail::DefaultValue < T28 >::get (),
const std::string & n29 = "D1",
typename TypeWrapper < T29 >::CONSTTYPE & t29 = Detail::DefaultValue < T29 >::get (),
const std::string & n30 = "E1",
typename TypeWrapper < T30 >::CONSTTYPE & t30 = Detail::DefaultValue < T30 >::get (),
const std::string & n31 = "F1",
typename TypeWrapper < T31 >::CONSTTYPE & t31 = Detail::DefaultValue < T31 >::get (),
const std::string & n32 = "G1",
typename TypeWrapper < T32 >::CONSTTYPE & t32 = Detail::DefaultValue < T32 >::get (),
const std::string & n33 = "H1",
typename TypeWrapper < T33 >::CONSTTYPE & t33 = Detail::DefaultValue < T33 >::get (),
const std::string & n34 = "I1",
typename TypeWrapper < T34 >::CONSTTYPE & t34 = Detail::DefaultValue < T34 >::get (),
const std::string & n35 = "J1",
typename TypeWrapper < T35 >::CONSTTYPE & t35 = Detail::DefaultValue < T35 >::get (),
const std::string & n36 = "K1",
typename TypeWrapper < T36 >::CONSTTYPE & t36 = Detail::DefaultValue < T36 >::get (),
const std::string & n37 = "L1",
typename TypeWrapper < T37 >::CONSTTYPE & t37 = Detail::DefaultValue < T37 >::get (),
const std::string & n38 = "M1",
typename TypeWrapper < T38 >::CONSTTYPE & t38 = Detail::DefaultValue < T38 >::get (),
const std::string & n39 = "N1",
typename TypeWrapper < T39 >::CONSTTYPE & t39 = Detail::DefaultValue < T39 >::get ()
);

## Member Functions

### get

const Dynamic::Var get(
const std::string & name
) const;

### get

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

### get

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

### getName

const std::string & getName(
std::size_t index
);

### names

const NameVecPtr & names();

### operator !=

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

### operator <

bool operator < (
const NamedTuple & other
) const;

### operator ==

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

### operator []

const Dynamic::Var operator[] (
const std::string & name
) const;

### set

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

### setName

void setName(
std::size_t index,
const std::string & name
);