// Build don't link: 
// GROUPS passed templates
template<class T>
class Vector
{
public:
    Vector(int x);
    ~Vector();
    T& operator [] (int i);

private:
    T* v;
    int sz;
} ;

template<class T>
Vector<T>::Vector(int x)
{
    sz = x;
    v = new T (sz);
} ;

template<class T>
Vector<T>::~Vector()
    { delete [] v; } ;

template<class T>
T &
Vector<T>::operator [] (int i)
    { return v[i]; } ;

int
main(int, char **)
{
    Vector<int> intvec(3);

    intvec[0] = 1;
    intvec[1] = 2;
    intvec[2] = 3;

    for (int i = 0; i < 3; i++)
	intvec[i];

    return 0;
}



