fre*_*low 6 c++ undefined-behavior sequence-points language-lawyer c++11
是(++i)++未定义的行为?在检索增量对象以进行后缀增量操作后,是否可能发生前缀增量的副作用?这对我来说似乎很奇怪.
我的直觉是,这在C++ 03中是未定义的,在C++ 11中定义良好.我对吗?
Pra*_*rav 11
我的直觉是,这在C++ 03中未定义,在C++ 0x中定义良好.
是的,你是对的.C++ 03中的行为未定义,因为您尝试i在两个序列点之间多次修改.
行为在C++ 0x中定义得很好,因为(++i)++相当于(i += 1)++.+=操作员的副作用相对于++(后增量)排序,因此行为定义明确.