变量列表中的逗号是序列点吗
Is the comma in a variable list a sequence point?
在以下类型的代码中,每个变量构造之间是否有一个序列点,或者结果是否未定义?
int a = 0;
int b = a++, c = a++;
我在标准中找不到对序列点的具体引用。这是否意味着它是未定义的,或者只是我的搜索失败了?一个表达式的完成是一个序列点,但上面的初始化也算数吗?
我相信行为是明确定义的,因为8[dcl.dll]/3
声明中的每个init声明符都被单独分析,就好像它本身在声明中一样。
甚至在脚注中被额外解释为
一个包含多个声明符的声明通常相当于相应的声明序列,每个声明都包含一个声明人。那是
T D1, D2, ... Dn;
通常相当于
T D1; T D2; ... T Dn;
正如您所怀疑的,每个初始值设定项表达式后面都有一个序列点,因为它们是完整的表达式(1.9/16,1.9/12)。
相关文章:
- 初始值设定项列表是否只接受使用相同类型的值初始化变量?
- 带有整数的变量参数列表
- 转发变量参数列表以模拟 std::thread
- Simulink "Access Violation"写入 C++ lambda 函数捕获列表中的 PWork 变量
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- emplace_back初始化列表错误,当初始化列表在独立变量上工作时
- 将变量模板限制为类型列表
- C++中有没有一种方法可以通过指定列表中的每个成员变量来构造对象
- 我可以检查初始化列表中设置的构造函数主体中的变量吗
- 初始值设定项列表与构造函数赋值与变量定义
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 在返回参数列表中C++局部变量(如CodeFights所示)
- 打印/修改类对象的特定成员变量,其类定义列表 (STL) 包含的元素类型
- 变量参数列表 后面的'const std::string&'弄乱了堆栈
- 在成员初始化列表中,我可以创建对列表中不在列表中的成员变量的引用
- 在初始值设定项列表中采用多个参数的成员变量
- 声明带有变量的列表
- C++ 在列表变量名称中查找字符串字符串<string>
- 达到列表变量的值
- 如何序列化 <boost::shared_ptr<void *>> 类型的列表变量