逗号分隔变量定义中关系前的序列
Sequence-before relation in comma-separated variable definitions
让我们从以下示例代码开始:
int a = 0, b = a++, c = a;
a++
是否在a
之前(在c = a
内)测序?a++
和a
似乎符合全表达式的条件,根据cpprreference(规则1),答案应该是肯定的。但我不确定。
是。正如Brian所指出的,这不是逗号运算符,而是init声明符列表。从[dcl.dell]我们有:
声明中的每个init声明符都被单独分析,就好像它本身在声明中一样。
有一个脚注澄清:
具有多个声明符的声明通常等价于相应的声明序列,每个声明序列都有一个声明人。那是
T D1, D2, ... Dn;
通常相当于
T D1; T D2; ... T Dn;
其中
T
是decl说明符seq,并且每个Di
是init声明符。
有两个例外,一个用于隐藏类型的名称,另一个用于auto
,两者都不适用。因此,最终,您拥有的代码完全等同于:
int a = 0;
int b = a++;
int c = a;
首先你应该更喜欢写这篇文章,因为它不需要搜索标准来确保你做的是有效的!
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 无法通过空白将文本文件行分隔为矢量
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- C++GTKMM gui循环依赖关系
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- C ++中的StringStream有助于使用向量从字符串中提取逗号分隔的整数,而不是空格分隔的整数,为什么?
- 如何在 C++ 中将文件中的逗号分隔数字读取到数组中?
- "Warning: Comma within array index expression"但逗号分隔函数参数
- C++逗号分隔的输入数组代码过早退出
- Doxygen - 如何在不生成图形的情况下生成文本调用关系结果
- 如何分隔字符串并将标记传递给方法
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 在 c++ 中对字符串进行操作的关系运算符无法按预期工作
- 如何记住这种递归关系?
- 逗号分隔变量定义中关系前的序列