【问题标题】:What does the >?= operator mean?>?= 运算符是什么意思?
【发布时间】:2011-07-09 03:35:21
【问题描述】:

浏览这个 C++ BigInt 库并找到 BigInt.cpp 文件。顶部有一条关于兼容性的评论:

这个类是为 g++ 编译器编写的,并使用了一些 g++ 扩展(如“long double”和 ">?=" 运算符)。

>?= 运算符是做什么的?我在其他任何地方都找不到对它的引用。

【问题讨论】:

  • long double 不是 g++ 扩展...

标签: c++ g++ operators


【解决方案1】:

这是 GCC 4.2 及更高版本中删除的 GCC 扩展。

a >?= b 的等价物是a = max(a,b);

还有一个非常相似的运算符a <?= b,意思和a = min(a, b);一样。

【讨论】:

    【解决方案2】:

    C extension: <? and >? operators

    这是 max-then-assign 运算符:取左侧和右侧中较大的一个,然后将其塞回左侧。

    它已从 g++ 中删除,应替换为 max(或 min 替换为 &lt;?=

    【讨论】:

      【解决方案3】:

      This page 描述 &gt;? 是“最大值”运算符,它返回两个数字参数中的最大值。我猜&gt;?= 将其与赋值相结合,如果右侧值较大,大概是通过分配给左侧操作数。

      【讨论】:

      • 提姆,听起来很有道理 - 因此很可能+1 :)
      • 他们将&gt;? 用作最大值运算符是有道理的,因为可以像这样在常规 C++ 中计算最大值:max = lhs &gt; rhs ? lhs : rhs
      • 编译器特定的语言扩展?!我以为只有 MS 傻到可以做到这一点。嘘!嘶嘶声!
      • @David:还有__attribute__。但当然,有些扩展比其他扩展更令人讨厌。
      • &gt;?= 真的很恶心!
      猜你喜欢
      • 2013-05-07
      • 2015-09-18
      • 2017-03-29
      • 2011-03-16
      • 2016-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多