powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что неопределённого в `c = -(c++);`?
25 сообщений из 50, страница 1 из 2
Что неопределённого в `c = -(c++);`?
    #39774643
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что
https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39774686
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestC++17 постановил

Это слишком свежая новость, мало кто в курсе (включая компиляторы).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39774712
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЭто слишком свежая новость, мало кто в курсе (включая компиляторы).gcc и clang уже почти 2 года как в курсе.
MSVC да, меньше года.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39774746
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestgcc и clang уже почти 2 года как в курсе.
MSVC да, меньше года.Я тебя разочарую, компиляторы даже утвержденные и "стандартные" положения могут трактовать по своему.

Смирись с этим.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778602
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestПочему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что
https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand.если вы про 21809069 , то это проблему не решает, ибо с результататом операторов то как раз всё нормально
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778839
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я замечаю паталогический и девиантный интерес новичков к UB.

Вот функциональное программирование в С++ им неинтересно! Им неинтересен ООП с точки зрения идеи. Им неинтересен шаблонный
процессинг и вывод типов и неявные преобразования.

А вот хлебом не корми - дай поковырять UB...
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778887
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, вообще не понимаю - зачем эти извращения?
Почему просто не написать?:
Код: plaintext
1.
c++; c *= -1;
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778916
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

просто есть дофига контор, которые в качестве задачек подкидывают вот такие фокусы
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778920
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме?
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778925
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

это же надо потом кому-то в FAQ тыкать, а где, кстати, он в разделе С++?
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778941
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)mayton,

просто есть дофига контор, которые в качестве задачек подкидывают вот такие фокусы
ИМХО тут правильный ответ: "Если у вас так можно писать, то не хочу у вас работать"
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39778942
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review.
Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру
зазанвшегося юнца".
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779038
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме?

До следующего изменения в стандарте ;)
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779041
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercurymaytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме?

До следующего изменения в стандарте ;)
Во всех-всех компилляторах.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779208
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме?

можем! а можем?
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779243
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestПочему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что
https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand.

Код: plaintext
1.
c = -(c++);



Тут проблема-то не в том, что раньше чего вычисляется, а то,
что тут есть два побочных эффекта, которые случаются до ;
Порядок их обработки не определён.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779565
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)a.guestПочему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что
пропущено...
если вы про 21809069 , то это проблему не решаетПо-моему, вполне решает.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779566
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivтут есть два побочных эффекта, которые случаются до ;
Порядок их обработки не определён.Определён.
https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand. https://timsong-cpp.github.io/cppwp/n4659/intro.execution#15 An expression X is said to be sequenced before an expression Y if every value computation and every side effect associated with the expression X is sequenced before every value computation and every side effect associated with the expression Y.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779570
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devmayton, вообще не понимаю - зачем эти извращения?
Почему просто не написать?:
Код: plaintext
1.
c++; c *= -1;

Потому что результат будет другой.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779571
a.guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s
Где там что-то про code review? Ни слова. Наоборот, написано
Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779594
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestMasterZivтут есть два побочных эффекта, которые случаются до ;
Порядок их обработки не определён.Определён.
https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand. https://timsong-cpp.github.io/cppwp/n4659/intro.execution#15 An expression X is said to be sequenced before an expression Y if every value computation and every side effect associated with the expression X is sequenced before every value computation and every side effect associated with the expression Y.выделенное красным уже ближе к вопросу
но вот если его перевести то ох и ах, оно даёт только определение "упорядоченного выражения", иходя из него
Код: plaintext
1.
i = i++ 

просто не является "упорядоченным выражением"
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779596
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guest,

с функциями более менее понятно:

https://timsong-cpp.github.io/cppwp/n4659/intro.execution#18 When calling a function (whether or not the function is inline), every value computation and side effect associated with any argument expression, or with the postfix expression designating the called function, is sequenced before execution of every expression or statement in the body of the called function.

и ещё одно мутное

https://timsong-cpp.github.io/cppwp/n4659/intro.execution#16 Every value computation and side effect associated with a full-expression is sequenced before every value computation and side effect associated with the next full-expression to be evaluated.т.к. оно опять же не даёт чёткого ответа когда же всё же должны выполняться побочные эффекты конкретно для выражения.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779651
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a.guestmaytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s
Где там что-то про code review? Ни слова. Наоборот, написано
Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка
На собеседовании.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779723
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review.
Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру
зазанвшегося юнца".

это-то так, но формально: как писать нельзя определяет компилятор, если дает ошибку - нельзя, не дает - можно.
В данном случае - ошибки нет.
...
Рейтинг: 0 / 0
Что неопределённого в `c = -(c++);`?
    #39779728
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинmaytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review.
Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру
зазанвшегося юнца".

это-то так, но формально: как писать нельзя определяет компилятор, если дает ошибку - нельзя, не дает - можно.
В данном случае - ошибки нет.
Некоторые дают предупреждение 21809886
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Что неопределённого в `c = -(c++);`?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]