class Foo { Foo(Foo&& f); }; class Bar { explicit Bar(Bar&& f); // expected-error {{Move constructors may not be marked explicit}} }; class Baz { template explicit Baz(T&& f) {}; }; class Quxx { Quxx(); Quxx(Quxx& q) = delete; template explicit Quxx(T&& f) {}; }; void f() { // Move a quxx into a quxx! (This speciailizes Quxx's constructor to look like // a move constructor - to make sure it doesn't trigger) Quxx(Quxx()); }