我在使用弱指针作为map中的键。然而,当我尝试编译时,出现了难看的消息,我理解为缺少std::weak_ptr的比较运算符,这在std::map中是必需的,因为它根据键值对元素进行排序。
现在,weak_ptr类是一种智能指针类型类,因此可以使用指向某些受管理数据的指针。
这个类没有提供operator<方法的基本实现,是否有充分的理由呢?我的意思是,比较指针值对我来说似乎很明显,如果需要以不同的方式工作,则应该能够扩展或重新定义该方法,以获得预期的行为,不是吗?
非常感谢您的见解。
现在,weak_ptr类是一种智能指针类型类,因此可以使用指向某些受管理数据的指针。
这个类没有提供operator<方法的基本实现,是否有充分的理由呢?我的意思是,比较指针值对我来说似乎很明显,如果需要以不同的方式工作,则应该能够扩展或重新定义该方法,以获得预期的行为,不是吗?
非常感谢您的见解。
<
完成指针比较的皮秒后,其中一个基础对象可能已经被销毁,因此您的比较结果也就无从谈起了。这与一般指针比较无关,正如答案所声称的那样。std::less
强制执行指针上的弱排序。查一下吧。比较普通指针没有问题。但由于其本质,弱指针比较是完全没有意义的。 - Sam Varshavchik