>?= 运算符是啥意思?
Posted
技术标签:
【中文标题】>?= 运算符是啥意思?【英文标题】:What does the >?= operator mean?>?= 运算符是什么意思? 【发布时间】:2011-07-09 03:35:21 【问题描述】:浏览这个 C++ BigInt 库并找到 BigInt.cpp 文件。顶部有一条关于兼容性的评论:
这个类是为 g++ 编译器编写的,并使用了一些 g++ 扩展(如“long double”和 ">?=" 运算符)。
>?=
运算符是做什么的?我在其他任何地方都找不到对它的引用。
【问题讨论】:
long double 不是 g++ 扩展... 【参考方案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
替换为 <?=
)
【讨论】:
【参考方案3】:This page 描述 >?
是“最大值”运算符,它返回两个数字参数中的最大值。我猜>?=
将其与赋值相结合,如果右侧值较大,大概是通过分配给左侧操作数。
【讨论】:
提姆,听起来很有道理 - 因此很可能+1 :) 他们将>?
用作最大值运算符是有道理的,因为可以像这样在常规 C++ 中计算最大值:max = lhs > rhs ? lhs : rhs
。
编译器特定的语言扩展?!我以为只有 MS 傻到可以做到这一点。嘘!嘶嘶声!
@David:还有__attribute__
。但当然,有些扩展比其他扩展更令人讨厌。
>?=
真的很恶心!以上是关于>?= 运算符是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
这个 JavaScript 运算符是啥意思? >>> [重复]
=> 在 oracle pl sql.is 和调用运算符中是啥意思?