edA*_*a-y 21 c++ variables comma sequence-points
在下面的代码类型中,每个变量构造之间是否有一个序列点,或者结果是否未定义?
int a = 0;
int b = a++, c = a++;
Run Code Online (Sandbox Code Playgroud)
我无法在标准中找到这里对序列点的具体引用.这是否意味着它是未定义的,或者只是我在搜索中失败了?表达式的完成是一个序列点,但上面的初始化也算了吗?
Cub*_*bbi 21
我认为行为是明确的,因为8 [dcl.decl]/3
声明中的每个init-declarator都会被单独分析,就好像它本身就在声明中一样.
这甚至在脚注中另外解释为
具有多个声明符的声明通常等效于具有单个声明符的相应声明序列.那是
Run Code Online (Sandbox Code Playgroud)T D1, D2, ... Dn;通常是等价的
Run Code Online (Sandbox Code Playgroud)T D1; T D2; ... T Dn;
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |