Suppose I have a class foo and you want to use std :: map to store some boost :: shared_ptrs, for example:
class foo; typedef boost::shared_ptr<foo> foo_sp; typeded std::map<int, foo_sp> foo_sp_map; foo_sp_map m;
If I add a new foo_sp to the card, but the key used already exists, will the existing record be deleted? For example:
foo_sp_map m; void func1() { foo_sp p(new foo); m[0] = p; } void func2() { foo_sp p2(new foo); m[0] = p2; }
Will the original pointer (p) be freed if it is replaced by p2? I am sure this will happen, but I thought it was worth asking / sharing.
c ++ std smart-pointers stdmap
Rob
source share