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

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

Смирись с этим.
...
Рейтинг: 0 / 0
25.02.2019, 07:04
    #39778602
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
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
25.02.2019, 15:22
    #39778839
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
Я замечаю паталогический и девиантный интерес новичков к UB.

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

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

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

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

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

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

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

можем! а можем?
...
Рейтинг: 0 / 0
26.02.2019, 12:24
    #39779243
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
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
27.02.2019, 02:32
    #39779565
a.guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
kealon(Ruslan)a.guestПочему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что
пропущено...
если вы про 21809069 , то это проблему не решаетПо-моему, вполне решает.
...
Рейтинг: 0 / 0
27.02.2019, 02:37
    #39779566
a.guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
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
27.02.2019, 02:59
    #39779570
a.guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
rdb_devmayton, вообще не понимаю - зачем эти извращения?
Почему просто не написать?:
Код: plaintext
1.
c++; c *= -1;

Потому что результат будет другой.
...
Рейтинг: 0 / 0
27.02.2019, 03:08
    #39779571
a.guest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s
Где там что-то про code review? Ни слова. Наоборот, написано
Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка
...
Рейтинг: 0 / 0
27.02.2019, 08:41
    #39779594
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
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
27.02.2019, 08:55
    #39779596
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
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
27.02.2019, 11:19
    #39779651
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
a.guestmaytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s
Где там что-то про code review? Ни слова. Наоборот, написано
Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка
На собеседовании.
...
Рейтинг: 0 / 0
27.02.2019, 12:34
    #39779723
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что неопределённого в `c = -(c++);`?
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review.
Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру
зазанвшегося юнца".

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

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


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