|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
Почему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что https://timsong-cpp.github.io/cppwp/n4659/expr.ass#1 The right operand is sequenced before the left operand. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 16:29 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
a.guestC++17 постановил Это слишком свежая новость, мало кто в курсе (включая компиляторы). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 17:07 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто слишком свежая новость, мало кто в курсе (включая компиляторы).gcc и clang уже почти 2 года как в курсе. MSVC да, меньше года. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 17:31 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
a.guestgcc и clang уже почти 2 года как в курсе. MSVC да, меньше года.Я тебя разочарую, компиляторы даже утвержденные и "стандартные" положения могут трактовать по своему. Смирись с этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2019, 19:20 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
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 , то это проблему не решает, ибо с результататом операторов то как раз всё нормально ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 07:04 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
Я замечаю паталогический и девиантный интерес новичков к UB. Вот функциональное программирование в С++ им неинтересно! Им неинтересен ООП с точки зрения идеи. Им неинтересен шаблонный процессинг и вывод типов и неявные преобразования. А вот хлебом не корми - дай поковырять UB... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 15:22 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
mayton, вообще не понимаю - зачем эти извращения? Почему просто не написать?: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 16:20 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
mayton, просто есть дофига контор, которые в качестве задачек подкидывают вот такие фокусы ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:02 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
А мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:10 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
mayton, это же надо потом кому-то в FAQ тыкать, а где, кстати, он в разделе С++? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:13 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)mayton, просто есть дофига контор, которые в качестве задачек подкидывают вот такие фокусы ИМХО тут правильный ответ: "Если у вас так можно писать, то не хочу у вас работать" ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:39 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
Совершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру зазанвшегося юнца". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 17:41 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
maytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме? До следующего изменения в стандарте ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 22:24 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
SashaMercurymaytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме? До следующего изменения в стандарте ;) Во всех-всех компилляторах. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2019, 22:27 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
maytonА мы можем 1 раз ответить на этот вопрос в FAQ и больше к нему не возвращаться по крайней мере в этом форуме? можем! а можем? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 11:23 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
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.
Тут проблема-то не в том, что раньше чего вычисляется, а то, что тут есть два побочных эффекта, которые случаются до ; Порядок их обработки не определён. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2019, 12:24 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
kealon(Ruslan)a.guestПочему-то в одной недавней теме многие писали, что это UB, хотя C++17 постановил, что пропущено... если вы про 21809069 , то это проблему не решаетПо-моему, вполне решает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 02:32 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 02:37 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
rdb_devmayton, вообще не понимаю - зачем эти извращения? Почему просто не написать?: Код: plaintext 1.
Потому что результат будет другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 02:59 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s Где там что-то про code review? Ни слова. Наоборот, написано Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 03:08 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
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.
просто не является "упорядоченным выражением" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 08:41 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
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.т.к. оно опять же не даёт чёткого ответа когда же всё же должны выполняться побочные эффекты конкретно для выражения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 08:55 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
a.guestmaytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего.Обоснуй "обсуждать нечего" цитатами из https://www.sql.ru/forum/916364/pravila-i-rekomendacii-k-oformleniu-soobshheniy-na-forume-s Где там что-то про code review? Ни слова. Наоборот, написано Форум С++ предназначен для обсуждения широкого круга вопросов связанных с программированием на языках С и С++, обсуждения стандартов языка На собеседовании. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 11:19 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
maytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру зазанвшегося юнца". это-то так, но формально: как писать нельзя определяет компилятор, если дает ошибку - нельзя, не дает - можно. В данном случае - ошибки нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 12:34 |
|
Что неопределённого в `c = -(c++);`?
|
|||
---|---|---|---|
#18+
Ролг ХупинmaytonСовершенно верно. Правильный ответ - так писать нельзя и данный код не должен проходить code-review. Обсуждать нечего. Впрочем ... иногда подобные вопросы задают по приколу чтоб "осадить не в меру зазанвшегося юнца". это-то так, но формально: как писать нельзя определяет компилятор, если дает ошибку - нельзя, не дает - можно. В данном случае - ошибки нет. Некоторые дают предупреждение 21809886 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2019, 12:42 |
|
|
start [/forum/topic.php?fid=57&msg=39779208&tid=2017657]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 172ms |
0 / 0 |