blob: 678a728f352342b43707db06a163ba786847b4f8 [file] [log] [blame]
// { 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 "19:class template argument deduction failed|no match" "" { target c++17 } } template used as expression
// { dg-error "18:missing template arguments" "" { target c++14_down } .-1 }
TestClass2<T> p2;
p2 = TestClass2(); // { dg-error "19:class template argument deduction failed|no match" "" { target c++17 } } template used as expression
// { dg-error "18:missing template arguments" "" { target c++14_down } .-1 }
}
int main() {
double x;
doit(x);
}