// PR c++/86521 // { dg-do compile { target c++11 } } template T&& move (T&); struct Dest { Dest() = default; Dest( Dest && ) = default; Dest( Dest const & ) = delete; }; struct Source { Dest val; operator Dest () && { return move( val ); } operator Dest const & () const & { return val; } }; int main() { Source x; Dest d(move(x)); // { dg-error "ambiguous" "" { target c++14_down } } }