在阅读了有关操作员<for std :: feek_ptr的讨论之后,我看不出为什么定义std :: Hash将控制块用于std :: feek_ptr无法使用的任何原因。我也不相信标准委员会忽略了这一点。有人阅读了有关该主题的相关讨论吗?

编辑:关于操作员的讨论<for std :: feek_ptrhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1590.html

有帮助吗?

解决方案

我对历史有些熟悉。还有另一篇文章,您还应该阅读:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2637.pdf

我相信这篇论文是当前草案中实际上是什么。总而言之,shared_ptr具有基于值的运算符<() 基于所有权的会员函数所有者_before。 feek_ptr只有后者。

我最好的猜测是,foreg_ptr的hash-support被删除了。没有人提出对我所知的对feal_ptr的支持。将C ++ 0x带入标准化,有限的时间和资源来解决这些问题的问题有很多很多问题,毫无疑问,会有错误和丢失的作品。

我还认为要添加对neak_ptr的哈希支持,必须类似地完成holder_before:将构件函数haster_hash添加到shared_ptr和neek_ptr。我怀疑为C ++ 0x执行此操作为时已晚,但这似乎是一个合理的TR2提案。

其他提示

事实证明,日本对此抱怨(请参阅 LWG问题1406),这是霍华德所暗示的 他的回答 被提出为决议。不幸的是,它被推迟了(大概是由于时间限制)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top