1// { dg-do run  }
2template <class T>
3struct A
4{
5  template <class T2>
6  operator A<T2>() const { return A<T2>(); }
7};
8
9int main()
10{
11  A<int> a1;
12  A<long> a2;
13  A<double> a3;
14  A<char> a4;
15
16  a2 = a1.operator A<long>();
17  a3 = (A<double>) a1;
18  a4 = a1;
19}
20
21