【发布时间】:2021-03-18 23:54:52
【问题描述】:
这个问题是基于我发现的用于监视可能的内存泄漏的代码,因此它包含一些您可能不希望在常规程序中看到的代码,例如排序指针。
但是,我看到一个指针被设置为nullptr,然后将该指针与一个最大地址进行比较。 C++ 标准是否保证nullptr 总是小于operator< 的其他指针?
【问题讨论】:
-
“小于其他指针”不同于“与最大地址相比”。您是否好奇他们的比较是否安全?或者,如果比较
nullptr通常是安全的? -
指针比较仅适用于相同数组的元素,或
==和!=。未指定将指向不在同一数组中的对象的指针与operator<进行比较。 -
如果指针指向同一个数组,您只能比较小于和大于指针。
-
仅供参考:std::less:任何指针类型的 std::less 特化都会产生严格的总顺序,即使内置运算符 虽然,我没有看到关于
nullptr与任何其他指针相比如何的声明。
标签: c++ comparison-operators pointer-arithmetic nullptr