C ++中的“a <! - ?= b”是什么意思? - >

时间:2014-02-24 20:48:13

标签: c++ syntax

我看到了这段代码

a<?=b; // (a and b are int)

来自Google Code Jam的解决方案。

但我的VS在'?'

上显示错误

我只知道以下内容:

a>b?a=0:b=0;

感谢。

3 个答案:

答案 0 :(得分:9)

老操作员;它是(自已删除)gcc扩展名为'minimum'。那就是:

a <?= b;

与:

相同
a = a < b ? a : b;

答案 1 :(得分:1)

C ++的非标准GCC扩展允许<?作为运算符,相当于min。我之前没有见过<?=,但据推测它是一个就地版本;也就是说,a <?= b相当于a = min(a,b)

请注意,GCC开发人员第二天早上醒来,意识到这是一个坏主意。该运营商现已弃用。

答案 2 :(得分:1)

如果 a 恰好大于 b ,则会将a设置为b。

基本上与:

相同
a = a < b ? a : b;

示例:

int a = 5;
int b = 2;
a<?=b; //a is now 2!

我不会提倡实际使用这样的解决方案,但这太可怕了。

正如其他人所说,它是非标准GCC扩展的一部分,但请不要使用它。