比较shared_ptr实例的有效情况

时间:2016-08-15 00:43:28

标签: c++11 shared-ptr equality

在什么情况下比较shared_ptr实例而不是shared_ptr管理的underly lie类型是否有效?

作为一个例子,在以下代码运行之后,是否会出现人员集2的大小有效的情况?

shared_ptr<person> p0 = make_shared<person>(....);
shared_ptr<person> p1 = p0;

set<shared_ptr<person>> personset;

personset.insert(p0);
personset.insert(p1);

1 个答案:

答案 0 :(得分:5)

没有可行的理由比较实例。默认情况下,is_ shared_ptrs将通过指向控制块的底层指针(通过.get方法)执行相等/不等式比较器。

http://en.cppreference.com/w/cpp/memory/shared_ptr/operator_cmp