Adding New Data Type

I would like to add a heterogeneous tuple-like data structure for C++ that is
added to the built in types for clang.

So for example, the statement: CustomType<int, float, long> typeName;

...would create a class defined in place of that statement with the same
name given to it, such as:

class typeName
{
public:
    Method1 () {...};
    Method2 () {...};
    int v1;
    float v2;
    long v3;
};

What is the best way to tackle the addition of this type to clang?

#include <tuple> ?

John.