📄 tuple.h
字号:
typename TypeWrapper<T5>::CONSTTYPE& t5 = POCO_TYPEWRAPPER_DEFAULTVALUE(T5),
typename TypeWrapper<T6>::CONSTTYPE& t6 = POCO_TYPEWRAPPER_DEFAULTVALUE(T6)):
_data(t0, typename TypeListType<T1,T2,T3,T4,T5,T6>::HeadType
(t1, typename TypeListType<T2,T3,T4,T5,T6>::HeadType
(t2, typename TypeListType<T3,T4,T5,T6>::HeadType
(t3, typename TypeListType<T4,T5,T6>::HeadType
(t4, typename TypeListType<T5,T6>::HeadType
(t5, typename TypeListType<T6>::HeadType
(t6, NullTypeList())))))))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0,
class T1,
class T2,
class T3,
class T4,
class T5>
struct Tuple<T0, T1,T2,T3,T4,T5, NullTypeList>
{
typedef typename TypeListType<T0,T1,T2,T3,T4,T5>::HeadType Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
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)):
_data(t0, typename TypeListType<T1,T2,T3,T4,T5>::HeadType
(t1, typename TypeListType<T2,T3,T4,T5>::HeadType
(t2, typename TypeListType<T3,T4,T5>::HeadType
(t3, typename TypeListType<T4,T5>::HeadType
(t4, typename TypeListType<T5>::HeadType
(t5, NullTypeList()))))))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0,
class T1,
class T2,
class T3,
class T4>
struct Tuple<T0, T1,T2,T3,T4, NullTypeList>
{
typedef typename TypeListType<T0,T1,T2,T3,T4>::HeadType Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
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)):
_data(t0, typename TypeListType<T1,T2,T3,T4>::HeadType
(t1, typename TypeListType<T2,T3,T4>::HeadType
(t2, typename TypeListType<T3,T4>::HeadType
(t3, typename TypeListType<T4>::HeadType
(t4, NullTypeList())))))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0,
class T1,
class T2,
class T3>
struct Tuple<T0, T1,T2,T3, NullTypeList>
{
typedef typename TypeListType<T0,T1,T2,T3>::HeadType Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
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)):
_data(t0, typename TypeListType<T1,T2,T3>::HeadType
(t1, typename TypeListType<T2,T3>::HeadType
(t2, typename TypeListType<T3>::HeadType
(t3, NullTypeList()))))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0,
class T1,
class T2>
struct Tuple<T0, T1,T2, NullTypeList>
{
typedef typename TypeListType<T0,T1,T2>::HeadType Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0,
typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1),
typename TypeWrapper<T2>::CONSTTYPE& t2 = POCO_TYPEWRAPPER_DEFAULTVALUE(T2)):
_data(t0, typename TypeListType<T1,T2>::HeadType
(t1, typename TypeListType<T2>::HeadType
(t2, NullTypeList())))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0,
class T1>
struct Tuple<T0, T1, NullTypeList>
{
typedef typename TypeListType<T0,T1>::HeadType Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0,
typename TypeWrapper<T1>::CONSTTYPE& t1 = POCO_TYPEWRAPPER_DEFAULTVALUE(T1)):
_data(t0, typename TypeListType<T1>::HeadType(t1, NullTypeList()))
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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 <class T0>
struct Tuple<T0, NullTypeList>
{
typedef TypeList<T0, NullTypeList> Type;
enum TupleLengthType
{
length = Type::length
};
Tuple():_data()
{
}
Tuple(typename TypeWrapper<T0>::CONSTTYPE& t0):
_data(t0, NullTypeList())
{
}
template <int N>
typename TypeGetter<N, Type>::ConstHeadType& get() const
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
typename TypeGetter<N, Type>::HeadType& get()
{
return Getter<N>::template get<typename TypeGetter<N, Type>::HeadType, typename Type::HeadType, typename Type::TailType>(_data);
}
template <int N>
void set(typename TypeGetter<N, Type>::ConstHeadType& val)
{
Getter<N>::template get<typename TypeGetter<N, Type>::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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -