- #include <iostream> 
- #include <map> 
-   
- struct Foo 
- { 
-    Foo() : someValue(5) {}; 
-    int someValue; 
- }; 
-   
- std::map<int,Foo*> function_that_returns_the_map() 
- { 
-    std::map<int,Foo*> myMap; 
-    { 
-       int v = 0;  
-       Foo *b = new Foo(); 
-       std::cout << (*b).someValue << std::endl; // PRINTING FOO FIRST 
-       myMap.insert(std::pair<int,Foo*>(v,b)); 
-    } 
-   
-    // PRINTING FOO AGAIN 
-    std::map<int, Foo*>::iterator it = myMap.begin(); 
-    for(it; it != myMap.end(); ++it) 
-    {  
-       std::cout << it->second->someValue << "\n"; 
-    } 
-    return myMap; 
- } 
-   
- int main() 
- { 
-    std::map<int, Foo*> myMap; 
-    myMap = function_that_returns_the_map(); 
-   
-    //PRINTING FOO AGAIN. 
-   
-    std::map<int, Foo*>::iterator it = myMap.begin(); 
-    for (it; it!=myMap.end(); ++it) 
-    std::cout << it->second->someValue << std::endl; 
-    return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKc3RydWN0IEZvbwp7CiAgIEZvbygpIDogc29tZVZhbHVlKDUpIHt9OwogICBpbnQgc29tZVZhbHVlOwp9OwoKc3RkOjptYXA8aW50LEZvbyo+IGZ1bmN0aW9uX3RoYXRfcmV0dXJuc190aGVfbWFwKCkKewogICBzdGQ6Om1hcDxpbnQsRm9vKj4gbXlNYXA7CiAgIHsKICAgICAgaW50IHYgPSAwOyAKICAgICAgRm9vICpiID0gbmV3IEZvbygpOwogICAgICBzdGQ6OmNvdXQgPDwgKCpiKS5zb21lVmFsdWUgPDwgc3RkOjplbmRsOyAvLyBQUklOVElORyBGT08gRklSU1QKICAgICAgbXlNYXAuaW5zZXJ0KHN0ZDo6cGFpcjxpbnQsRm9vKj4odixiKSk7CiAgIH0KCiAgIC8vIFBSSU5USU5HIEZPTyBBR0FJTgogICBzdGQ6Om1hcDxpbnQsIEZvbyo+OjppdGVyYXRvciBpdCA9IG15TWFwLmJlZ2luKCk7CiAgIGZvcihpdDsgaXQgIT0gbXlNYXAuZW5kKCk7ICsraXQpCiAgIHsgCiAgICAgIHN0ZDo6Y291dCA8PCBpdC0+c2Vjb25kLT5zb21lVmFsdWUgPDwgIlxuIjsKICAgfQogICByZXR1cm4gbXlNYXA7Cn0KICAKaW50IG1haW4oKQp7CiAgIHN0ZDo6bWFwPGludCwgRm9vKj4gbXlNYXA7CiAgIG15TWFwID0gZnVuY3Rpb25fdGhhdF9yZXR1cm5zX3RoZV9tYXAoKTsKCiAgIC8vUFJJTlRJTkcgRk9PIEFHQUlOLgoKICAgc3RkOjptYXA8aW50LCBGb28qPjo6aXRlcmF0b3IgaXQgPSBteU1hcC5iZWdpbigpOwogICBmb3IgKGl0OyBpdCE9bXlNYXAuZW5kKCk7ICsraXQpCiAgIHN0ZDo6Y291dCA8PCBpdC0+c2Vjb25kLT5zb21lVmFsdWUgPDwgc3RkOjplbmRsOwogICByZXR1cm4gMDsKfQ==