#include <iostream>
#include <vector>
struct S {
S(const char* v_) : m_v(v_) {}
~S() {
std::cout << "destructing ~S(" << m_v << ")\n";
}
const char* m_v;
};
int main()
{
std::vector<S> v;
v.emplace_back("hello");
v.clear();
v.emplace_back("fin");
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICNpbmNsdWRlIDx2ZWN0b3I+CgogICAgc3RydWN0IFMgewogICAgICAgIFMoY29uc3QgY2hhciogdl8pIDogbV92KHZfKSB7fQogICAgICAgIH5TKCkgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgImRlc3RydWN0aW5nIH5TKCIgPDwgbV92IDw8ICIpXG4iOwogICAgICAgIH0KICAgICAgICBjb25zdCBjaGFyKiBtX3Y7CiAgICB9OwoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICBzdGQ6OnZlY3RvcjxTPiB2OwogICAgICAgIHYuZW1wbGFjZV9iYWNrKCJoZWxsbyIpOwogICAgICAgIHYuY2xlYXIoKTsKCiAgICAgICAgdi5lbXBsYWNlX2JhY2soImZpbiIpOwogICAgfQo=