#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;
struct stype
{
stype(stype&& s):ptr(s.ptr) { s.ptr = 0; cout << "stype(const stype&&)\n"; }
stype(const stype& s):ptr(s.ptr) { cout << "stype(const stype&)\n"; }
~stype(){ cout << "~stype()\n"; }
void* ptr;
template<typename T>
stype(T v) { ptr = new T(v); cout << "stype(" << v << ")\n"; }
};
int main(int argc, const char * argv[])
{
vector<stype> v;
v.emplace_back(5);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3Qgc3R5cGUKewogICAgc3R5cGUoc3R5cGUmJiBzKTpwdHIocy5wdHIpIHsgcy5wdHIgPSAwOyBjb3V0IDw8ICJzdHlwZShjb25zdCBzdHlwZSYmKVxuIjsgfQogICAgc3R5cGUoY29uc3Qgc3R5cGUmIHMpOnB0cihzLnB0cikgeyBjb3V0IDw8ICJzdHlwZShjb25zdCBzdHlwZSYpXG4iOyB9CiAgICB+c3R5cGUoKXsgY291dCA8PCAifnN0eXBlKClcbiI7IH0KICAgIHZvaWQqIHB0cjsKICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICBzdHlwZShUIHYpIHsgcHRyID0gbmV3IFQodik7IGNvdXQgPDwgInN0eXBlKCIgPDwgdiA8PCAiKVxuIjsgfQp9OwoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKiBhcmd2W10pCnsKICAgIHZlY3RvcjxzdHlwZT4gdjsKICAgIHYuZW1wbGFjZV9iYWNrKDUpOwp9Cgo=