Sri*_*ian 2 c++ comma-operator
下面的行在for循环中.如果方法失败,则需要中断.CATEGORY_1是一个枚举.我将此枚举添加为AddToList方法的新参数,并带有默认值.如果你仔细看下面,我实际上错误地把逗号和枚举放在函数的参数列表之外.这与VS2010完美匹配.所以我很难找到为该参数而不是CATEGORY_1传递的默认值.有谁知道为什么这成功了?
if (! AddToList(obj1, (unsigned int) Val), CATEGORY_1)
{
break;
}
Run Code Online (Sandbox Code Playgroud)
在C++中,逗号不仅仅是一个分隔符; 它也可以是一个运营商.那个逗号是一个运算符.逗号运算符计算第一个表达式,丢弃结果,然后计算第二个表达式并生成结果.
!AddToList(obj1, (unsigned int) Val) , CATEGORY_1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^
First expression Second expression
Run Code Online (Sandbox Code Playgroud)
[当然,逗号运算符与大多数其他运算符一样,可以重载,如果在这里使用重载,则语义可能不同.这是内置逗号运算符的行为.]
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |