Подтвердить что ты не робот

С++ 11 без точки последовательности?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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