C ++ 11 без точки последовательности? - PullRequest
16 голосов
/ 07 апреля 2010

Википедия говорит, что точки последовательности устарели в C ++ 11. Что это значит? Означает ли это, что неопределенное поведение из-за точек последовательности не имеет эффекта?

Ответы [ 3 ]

9 голосов
/ 02 ноября 2011

Одна из основных проблем с термином «точка последовательности» заключается в том, что он предлагает тип абсолютного секвенирования, которого никогда не было.Рассмотрим выражение a = (b(),c()) + d(); Существует точка последовательности между b() и c(), но это не значит, что все остальное можно описать как явно до c() или как явно после b().b(), c() и d() могут быть оценены в порядке bcd, bdc или dbc.Точечная терминология «последовательности» на самом деле не проясняет это, но более новая терминология делает.

9 голосов
/ 07 апреля 2010

Термин «точка последовательности» устарел, чтобы дать более четкое объяснение. Язык С ++ не должен меняться.

Вы можете найти больше информации здесь

7 голосов
/ 07 апреля 2010

Фраза «точка последовательности» устарела в пользу более четких формулировок, таких как «последовательность перед».Очки последовательности было трудно понять уже.Добавление многопоточности делает их практически невозможными для любого, поэтому они (по крайней мере, в основном) исключены в пользу других формулировок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...