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