代码之家  ›  专栏  ›  技术社区  ›  Vincent

运算符小于非null原始指针和nullptr之间的值

  •  4
  • Vincent  · 技术社区  · 7 年前

    nullptr < ptr ptr < nullptr 为非空原始指针定义良好 ptr != nullptr ? 欢迎引用C++标准。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Igor Tandetnik    7 年前

    这样的比较形式很好,但结果不详。

    [expr.rel]/3

    如果两个指针指向同一数组的不同元素或其子对象,则指向下标越高的元素的指针比较大。

    如果一个指针指向数组的一个元素或其子对象,而另一个指针指向数组最后一个元素之后的一个元素,则后一个指针比较大。

    如果两个指针递归地指向同一对象的不同非静态数据成员,或指向此类成员的子对象,则如果两个成员具有相同的访问控制(第11条),并且其类不是并集,则指向后一个声明成员的指针比较大。

    [expr.rel]/4 如果两个操作数 p q p<=q p>=q 两种产量 true p<q p>q 两种产量 false 。否则,如果指针 , p>=q , q<=p q<p 全部收益率 真的 , p<q , q>=p q>p 全部收益率

    空指针不属于 [expr.rel]/4