1 // PR c++/44628 2 3 template <typename T> 4 class Temp 5 { 6 int Val; 7 public: 8 operator T&(void) { return Val; } 9 10 virtual T& operator=(T a ) // { dg-message "overridden" } 11 { 12 Val = a; 13 return Val; 14 } 15 }; 16 17 class Int : public Temp<int> 18 { 19 public: 20 Int& operator=(int a) // { dg-error "conflicting return type" } 21 { 22 return (*this); 23 } 24 }; 25