template struct Poco::TypeList

Compile Time List of Types.

#include <TypeList.h>

template <
    class Head,
    class Tail
    >
struct TypeList
{
    // typedefs

    typedef Head HeadType;
    typedef Tail TailType;
    typedef TypeWrapper<HeadType>::CONSTTYPE ConstHeadType;
    typedef TypeWrapper<TailType>::CONSTTYPE ConstTailType;

    // enums

    enum
    {
        length = TailType::length+1,
    };

    // fields

    HeadType head;
    TailType tail;

    // construction

    TypeList();

    TypeList(
        ConstHeadType& h,
        ConstTailType& t
        );

    TypeList(const TypeList& tl);

    // methods

    TypeList&
    operator=(const TypeList& tl);

    bool
    operator==(const TypeList& tl) const;

    bool
    operator!=(const TypeList& tl) const;

    bool
    operator<(const TypeList& tl) const;

    void
    swap(TypeList& tl);
};