2010-04-07 63 views
16

維基百科說,順序點在C++ 11中不推薦使用。那是什麼意思?這是否意味着由序列點引起的未定義行爲沒有影響?C++ 11沒有序列點?

+0

您能否提供指向維基百科文章的鏈接? – 2010-04-07 07:47:38

+0

@Péter:http://en.wikipedia.org/wiki/C%2B%2B0x – kennytm 2010-04-07 08:14:49

+0

@KennyTM Thanx :-) – 2010-04-07 08:27:29

回答

9

爲了提供更清晰的解釋,不推薦使用術語「順序點」。 C++語言不應該改變。

你可以找到更多信息here

7

短語「序列點」,主張像更明確的措辭已被棄用,「前序」。序列點已經很難理解了。添加多線程使他們幾乎不可能與任何人打交道,所以他們(至少大部分)被其他措辭所取代。

8

術語「序列點」的一個主要問題是它提示了一種從不存在的絕對測序。考慮表達式a = (b(),c()) + d();b()c()之間有一個序列點,但這並不意味着其他所有內容都可以被描述爲在c()之前明確或明確在b()之後。有可能以bcd,bdcdbc的順序評估b(),c()d()。 「序列」點術語並沒有真正表明這一點,但新術語確實如此。