#include <iostream>
#include <vector>
#include <memory>
struct State {
State() { std::cout << "constructor" << std::endl; }
~State() { std::cout << "destructor" << std::endl; }
};
int main() {
std::vector< std::unique_ptr<State> > mStates;
mStates.push_back(std::unique_ptr<State>(new State{}));
mStates.pop_back();
std::cout << "done" << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWVtb3J5PgoKc3RydWN0IFN0YXRlIHsKICAgIFN0YXRlKCkgeyBzdGQ6OmNvdXQgPDwgImNvbnN0cnVjdG9yIiA8PCBzdGQ6OmVuZGw7IH0KICAgIH5TdGF0ZSgpIHsgc3RkOjpjb3V0IDw8ICJkZXN0cnVjdG9yIiA8PCBzdGQ6OmVuZGw7IH0KfTsKCmludCBtYWluKCkgewogICAgc3RkOjp2ZWN0b3I8IHN0ZDo6dW5pcXVlX3B0cjxTdGF0ZT4gPiBtU3RhdGVzOwogICAgbVN0YXRlcy5wdXNoX2JhY2soc3RkOjp1bmlxdWVfcHRyPFN0YXRlPihuZXcgU3RhdGV7fSkpOwogICAgbVN0YXRlcy5wb3BfYmFjaygpOwogICAgc3RkOjpjb3V0IDw8ICJkb25lIiA8PCBzdGQ6OmVuZGw7Cn0K