#include <iostream>
#include <queue>
struct probe {
probe() { std::cout << "probe()" << ((void*)this) << std::endl; }
probe(const probe&) { std::cout << "probe(c&)" << ((void*)this) << std::endl; }
probe(probe&&) { std::cout << "probe(&&)" << ((void*)this) << std::endl; }
~probe() { std::cout << "~probe()" << ((void*)this) << std::endl; }
};
int main() {
std::queue<probe> my_queue;
probe p;
my_queue.push(std::move(p));
probe p2 = std::move(my_queue.front());
my_queue.pop();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8cXVldWU+CgpzdHJ1Y3QgcHJvYmUgewogICAgcHJvYmUoKSB7IHN0ZDo6Y291dCA8PCAicHJvYmUoKSIgPDwgKCh2b2lkKil0aGlzKSA8PCBzdGQ6OmVuZGw7IH0KICAgIHByb2JlKGNvbnN0IHByb2JlJikgeyBzdGQ6OmNvdXQgPDwgInByb2JlKGMmKSIgPDwgKCh2b2lkKil0aGlzKSA8PCBzdGQ6OmVuZGw7IH0KICAgIHByb2JlKHByb2JlJiYpIHsgc3RkOjpjb3V0IDw8ICJwcm9iZSgmJikiIDw8ICgodm9pZCopdGhpcykgPDwgc3RkOjplbmRsOyB9CiAgICB+cHJvYmUoKSB7IHN0ZDo6Y291dCA8PCAifnByb2JlKCkiIDw8ICgodm9pZCopdGhpcykgPDwgc3RkOjplbmRsOyB9Cn07CgppbnQgbWFpbigpIHsKCXN0ZDo6cXVldWU8cHJvYmU+IG15X3F1ZXVlOwoJCglwcm9iZSBwOwoJbXlfcXVldWUucHVzaChzdGQ6Om1vdmUocCkpOwoJcHJvYmUgcDIgPSBzdGQ6Om1vdmUobXlfcXVldWUuZnJvbnQoKSk7CglteV9xdWV1ZS5wb3AoKTsKCQoKCXJldHVybiAwOwp9Cg==