

#ifndef __1_2_h__
#define __1_2_h__

#include <iostream>


template <typename T, uint N>
class Tuple
{
private:
    T   m_data[N];
public:
    T*  data() { return m_data; }

    T& at(uint pos)
    {
        return m_data[pos];
    }
};

template <typename T>
class Tuple <T,0>
{
public:
    T*  data() { return 0; }

    T& at(uint pos)
    {
        return 0;
    }
};

#endif
