class example {
public:
example() = default;
[[deprecated]] example(const example&) = default;
example(example&&) noexcept = default;
[[deprecated]] example& operator=(const example&) = default;
example& operator=(example&&) noexcept = default;
};
example x;
example y = x;
class sink {
example _m;
public:
void set(example e) { _m = std::move(e); }
};
sink s;
s.set(x);
class sink2 {
example _m;
public:
void set(const example& e) { _m = e; }
void set(example&& e) { _m = std::move(e); }
};
sink2 s;
s.set(x);