vim*_*hap 8 c c++ gcc
有谁知道>?运营商?我有一个下面定义的宏,它抛出错误,但我从来没有见过这样的运算符:
>?
#define MAX_SIZEOF2(a,b) (sizeof(a) >? sizeof(b))
Sha*_*our 6
的最小和最大运营商是一个过时的gcc扩展:
G ++最小和最大运算符(' <?'和' >?')及其复合形式(' >?=')和' <?=')已被弃用,现在已从G ++中删除.使用这些运算符的代码应该被修改为使用std::min而std::max不是代替.
<?
>?=
<?=
std::min
std::max
以下是旧文档所说的内容:
让运算符返回两个参数的"最小值"或"最大值"非常方便.在GNU C++中(但不是在GNU C中), a <? b 是最小值,返回数值a和b中较小的一个; a >? b 是最大值,返回数值a和b中较大的一个.
让运算符返回两个参数的"最小值"或"最大值"非常方便.在GNU C++中(但不是在GNU C中),
a <? b
是最小值,返回数值a和b中较小的一个;
a >? b
是最大值,返回数值a和b中较大的一个.
这样做的好处是,如果不仔细使用,它可以避免出现副作用问题的宏.
Rah*_*thi 5
我想它已经从GCC 4.2版中删除了
相当于a >?= b是a = max(a,b);
a >?= b
a = max(a,b);
从手册
G ++的最小和最大运算符(' <?'和' >?')及其复合形式(' >?=')和' <?=')已弃用,现在已从G ++中删除。使用这些运算符的代码应修改为使用std::min和std::max。
编辑:
根据您的评论,您需要添加#include <algorithm>以使用std::max和std::min。您也可以检查一下以供参考。
#include <algorithm>
归档时间:
10 年,7 月 前
查看次数:
318 次
最近记录: