【问题标题】:How to make '<?=' available for use in C++? [duplicate]如何使 '<?=' 在 C++ 中可用? [复制]
【发布时间】:2011-08-30 01:09:59
【问题描述】:

可能重复:
What does the >?= operator mean?

我找到了这段代码

...
for(k=i+1;k<j;k++) r <?= go(i,k,b)+go(k,j,b);
for(k='A';k<='Z';k++) r <?= 1+go(i,j,k);
...

我对@9​​87654323@ 运算符感兴趣。在我看来,它应该将r 的值与运算符的右侧进行比较,如果右侧大于r,它应该将右侧分配给r。我想知道这个(以及类似的运算符,我想)在哪里定义,我应该怎么做才能使它们可用于 g++ 编译器?

【问题讨论】:

  • 可惜这个没有标准的算子。我经常使用这种类型的赋值,所以我倾向于将它作为成员函数 numclass::push_downto(const numclass &amp;) 包含在类似数字的类中,但这不是很好的风格,对于普通的原始类型你根本不能这样做。
  • 最小赋值运算符,右边越小赋值

标签: c++ operators conditional-operator


【解决方案1】:

不可行。 C++ 支持的运算符是固定的,不能添加新的。

【讨论】:

  • 实现扩展即可。
  • GCC 不是 C++。标准没有定义这样的运算符。
  • “C++”可以读作“标准C++”或“实用C++”。没有限定符,它是模棱两可的。
【解决方案2】:

我不认为这是一个有效的 C++ 运算符

【讨论】:

  • 不是标准的,而是一个扩展。
  • @Tomalak: ... 所以它不是一个有效的 standard C++ 运算符。这不值得一票否决。
  • 这是一个完全有效的 C++ 运算符。如果答案正确指定了标准与扩展,那将是正确的。而且,对于它的价值,我没有投反对票。
  • 扩展被称为扩展,因为它们扩展了语言。它们不是语言。
【解决方案3】:

&lt;?= 运算符是 GCC 扩展,已在 4.2 版中删除。见this question

请改用std::min

【讨论】:

    猜你喜欢
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2019-12-11
    • 1970-01-01
    相关资源
    最近更新 更多