【发布时间】:2015-04-12 11:02:05
【问题描述】:
在another answer 中指出,在C++11 之前,其中i 是int,然后使用表达式:
*&++i
导致未定义的行为。这是真的吗?
在另一个答案中,在 cmets 中进行了一些讨论,但似乎没有说服力。
【问题讨论】:
-
在这个答案中,知识渊博的“Johannes Schaub - litb”认为这是一个不真实的陈述。并没有得到任何回应。
-
@DrewDormann James Kanze 也很博学
-
*&i完全有效,++i返回对i的引用,所以我自己看不到问题... -
未定义的行为问题是否会出现在
i = *&++i或只是*&++i本身? -
@JonathanPotter:这不是未定义的行为,但它确实评估为未定义的值。他们都是对的,他们只是在谈论微妙的不同事物。
标签: c++ language-lawyer undefined-behavior c++03 sequence-points