#include <iostream>
template <typename T>
struct vec {
void add(const T& a) {
T t(a);
}
void add(T&& a) {
}
};
struct mov {
mov() = default;
mov(const mov&) = delete;
mov(mov&&) = default;
};
int main() {
mov m;
vec<mov> v;
v.add(std::move(m));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCB2ZWMgewoJdm9pZCBhZGQoY29uc3QgVCYgYSkgewoJCVQgdChhKTsKCX0KCgl2b2lkIGFkZChUJiYgYSkgewoJCQoJfQp9OwoKc3RydWN0IG1vdiB7Cgltb3YoKSA9IGRlZmF1bHQ7Cgltb3YoY29uc3QgbW92JikgPSBkZWxldGU7Cgltb3YobW92JiYpID0gZGVmYXVsdDsKfTsKCmludCBtYWluKCkgewoJbW92IG07CgkKCXZlYzxtb3Y+IHY7CgkKCXYuYWRkKHN0ZDo6bW92ZShtKSk7CgoJcmV0dXJuIDA7Cn0=