#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));

	return 0;
}
