Source code

Revision control

Copy as Markdown

Other Tools

class Foo {
Foo(Foo&& f);
};
class Bar {
explicit Bar(Bar&& f); // expected-error {{Move constructors may not be marked explicit}}
};
class Baz {
template<typename T>
explicit Baz(T&& f) {};
};
class Quxx {
Quxx();
Quxx(Quxx& q) = delete;
template<typename T>
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());
}