是否int a=1, b=a++;
调用未定义的行为?a
的初始化及其在初始化程序中的访问和修改之间没有序列点干预b
,但据我所知,初始化不是对象的“修改”;指定一个初始化器来给出对象的“初始值”。根据 6.7.8 初始化,第 8 段:
初始化器指定存储在对象中的初始值。
并且在对对象的任何访问之前将“初始”作为排序似乎是合理的。以前是否考虑过这个问题,是否有公认的解释?
是否int a=1, b=a++;
调用未定义的行为?a
的初始化及其在初始化程序中的访问和修改之间没有序列点干预b
,但据我所知,初始化不是对象的“修改”;指定一个初始化器来给出对象的“初始值”。根据 6.7.8 初始化,第 8 段:
初始化器指定存储在对象中的初始值。
并且在对对象的任何访问之前将“初始”作为排序似乎是合理的。以前是否考虑过这个问题,是否有公认的解释?