在什么情况下比较 shared_ptr 实例而不是 shared_ptr 管理的底层类型是有效的?
例如,在运行以下代码后,是否会出现 personset 大小为 2 有效的情况?
shared_ptr<person> p0 = make_shared<person>(....);
shared_ptr<person> p1 = p0;
set<shared_ptr<person>> personset;
personset.insert(p0);
personset.insert(p1);
最佳答案
没有可行的理由来比较这些实例。事实上,默认情况下 shared_ptr 将通过指向控制 block 的底层指针(通过 .get 方法)执行相等/不相等比较器。
http://en.cppreference.com/w/cpp/memory/shared_ptr/operator_cmp
关于c++11 - 比较 shared_ptr 实例的有效情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947938/