// { dg-do assemble } | |
template<class T> | |
class TestClass1 { | |
public: | |
TestClass1() { } | |
}; | |
template<class T> | |
class TestClass2 { | |
public: | |
TestClass2() { } | |
T operator()(int) { } | |
}; | |
template<class T> | |
void doit(T x) { | |
TestClass1<T> q1; | |
q1 = TestClass1<T>(); | |
TestClass2<T> q2; | |
q2 = TestClass2<T>(); | |
TestClass1<T> p1; | |
p1 = TestClass1(); // { dg-error "" } template used as expression | |
TestClass2<T> p2; | |
p2 = TestClass2(); // { dg-error "" } template used as expression | |
} | |
int main() { | |
double x; | |
doit(x); | |
} | |