#include <iostream>
#include <map>
#include <memory>
#include <vector>
using namespace std;
struct object {
};
enum type {
TYPE0,
TYPE1
};
typedef std::map<type, std::vector<std::unique_ptr<object> > > long_type;
static long_type m_objects;
int main() {
std::vector<std::unique_ptr<object>> vec;
vec.push_back(std::move(std::unique_ptr<object>(new object))); // make_unique in C++14
m_objects.insert(std::pair<type, std::vector<std::unique_ptr<object>>>(TYPE0, std::move(vec)));
long_type::iterator it = m_objects.find(TYPE0);
m_objects.erase(it);
cout << m_objects.size(); // 0
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG9iamVjdCB7Cn07CgplbnVtIHR5cGUgewoJVFlQRTAsCglUWVBFMQp9OwoKdHlwZWRlZiBzdGQ6Om1hcDx0eXBlLCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8b2JqZWN0PiA+ID4gbG9uZ190eXBlOwpzdGF0aWMgbG9uZ190eXBlIG1fb2JqZWN0czsKCmludCBtYWluKCkgewoJCglzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8b2JqZWN0Pj4gdmVjOwoJdmVjLnB1c2hfYmFjayhzdGQ6Om1vdmUoc3RkOjp1bmlxdWVfcHRyPG9iamVjdD4obmV3IG9iamVjdCkpKTsgLy8gbWFrZV91bmlxdWUgaW4gQysrMTQKCQoJbV9vYmplY3RzLmluc2VydChzdGQ6OnBhaXI8dHlwZSwgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPG9iamVjdD4+PihUWVBFMCwgc3RkOjptb3ZlKHZlYykpKTsKCQoJbG9uZ190eXBlOjppdGVyYXRvciBpdCA9IG1fb2JqZWN0cy5maW5kKFRZUEUwKTsKCQoJbV9vYmplY3RzLmVyYXNlKGl0KTsKCQoJY291dCA8PCBtX29iamVjdHMuc2l6ZSgpOyAvLyAwCgkKCXJldHVybiAwOwp9