// PR c++/37208: SFINAE and deleted functions. // { dg-do compile { target c++11 } } template struct A { }; template int& int_if_addable(A*); template float& int_if_addable(...); struct X { }; struct Y { }; Y operator+(Y, Y); struct Z { }; Z operator+(Z, Z) = delete; void f() { float& x = int_if_addable(0); int& y = int_if_addable(0); float& z = int_if_addable(0); }