hps*_*use 7 c++ comparison pointers
我知道指针的关系运算符仅在有限的情况下提供可靠的结果,并且不保证它们生成总订单.但是,这些运算符的标准函数对象确实具有生成总订单的特殊化.
那么是什么阻止了同样的规则申请内置运营商?这似乎没有简化任何事情,因为仍然需要可靠的比较(通过一些特定于实现的方法)来使这些函数对象起作用.
此外,是否可以对仅具有内置运算符的指针进行可靠的比较?虽然看起来不可能,但我想在此确认一下.
这并不是说它们不会产生一个总订单,但仅仅是他们不能保证这样做.在实践中,它们通常会遵循大多数现代硬件的总排序.这标准并不能保证.
当然,实现可能总是强迫他们这样做,但后来把它归结为C++的指导原则,"你不支付你不使用什么".在某些CPU上,这样做可能更昂贵.
假设您的CPU具有更复杂的地址模型,例如分段地址空间.在这种情况下,确定一个指针是否"大于"另一个指针不再那么简单.所以C++标准允许两者:"通常的"弱指针比较规则只保证某些有限情况的总排序(基本上,当指针指向同一个数组时,保证是线性和顺序的,并且可以非常有效地实现)和包装器功能,例如std::less在某些CPU上可能更昂贵,但确保所有指针的总排序.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |