// { dg-do assemble } // GROUPS passed templates template class Vector { public: Vector(int x); ~Vector(); T& operator [] (int i); private: T* v; int sz; } ; template Vector::Vector(int x) { sz = x; v = new T (sz); } template Vector::~Vector() { delete [] v; } template T & Vector::operator [] (int i) { return v[i]; } int main(int, char **) { Vector intvec(3); intvec[0] = 1; intvec[1] = 2; intvec[2] = 3; for (int i = 0; i < 3; i++) intvec[i]; return 0; }