在什么情况下比较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);
答案 0 :(得分:5)
没有可行的理由比较实例。默认情况下,is_ shared_ptrs将通过指向控制块的底层指针(通过.get方法)执行相等/不等式比较器。
http://en.cppreference.com/w/cpp/memory/shared_ptr/operator_cmp