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()21 int main() {
22   f(A());
23   f2(A2());
24   f2(A());			// { dg-error "" }
25 }
26