1 // PR c++/46831 2 // { dg-do compile { target c++11 } } 3 // { dg-options "" } 4 5 struct B { }; 6 struct D : B { }; 7 struct A { 8 template<typename T = void> operator D&(); // { dg-message "template conversion" } 9 operator long(); 10 }; 11 12 void f(long); 13 void f(B&); 14 15 struct A2 { 16 template<typename T = void> operator B&(); 17 }; 18 19 void f2(const B&); 20 main()21int main() { 22 f(A()); 23 f2(A2()); 24 f2(A()); // { dg-error "" } 25 } 26