#include <iostream>
#include <map>
struct Foo {
Foo(){};
~Foo(){std::cout << "Destructor of foo" << std::endl; }
};
int main() {
std::map<int, Foo> my_map;
std::cout << "Gonna create a temporary of foo to copy assign" << std::endl;
my_map.emplace(1, Foo());
std::cout << "1" << std::endl;
my_map.clear();
std::cout << "2" << std::endl;
my_map[1] = Foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKc3RydWN0IEZvbyB7CglGb28oKXt9OwoJfkZvbygpe3N0ZDo6Y291dCA8PCAiRGVzdHJ1Y3RvciBvZiBmb28iIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKaW50IG1haW4oKSB7CglzdGQ6Om1hcDxpbnQsIEZvbz4gbXlfbWFwOwoJc3RkOjpjb3V0IDw8ICJHb25uYSBjcmVhdGUgYSB0ZW1wb3Jhcnkgb2YgZm9vIHRvIGNvcHkgYXNzaWduIiA8PCBzdGQ6OmVuZGw7CglteV9tYXAuZW1wbGFjZSgxLCBGb28oKSk7CgkKCXN0ZDo6Y291dCA8PCAiMSIgPDwgc3RkOjplbmRsOwoJbXlfbWFwLmNsZWFyKCk7CglzdGQ6OmNvdXQgPDwgIjIiIDw8IHN0ZDo6ZW5kbDsKCW15X21hcFsxXSA9IEZvbygpOwoJcmV0dXJuIDA7Cn0=