Size: a a a

2020 September 04

CC

Cool Cooler in C++ Together 2.0
Roy Mustang
эмм, думаю что компилятор не идиот
Ну всм каждый компилер может сам решить, каким образом ему надо быть не идиотом
источник

CC

Cool Cooler in C++ Together 2.0
Наверное по-разному оно решено в разных компилерах
источник

CC

Cool Cooler in C++ Together 2.0
Поэтому UB
источник

RM

Roy Mustang in C++ Together 2.0
Cool Cooler
Ну всм каждый компилер может сам решить, каким образом ему надо быть не идиотом
Да не, это какой то простой случай
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
эмм, думаю что компилятор не идиот
В том то и дело, что он не идиот.  

Компилятор реализует стандарт, в стандарте есть as-if rule касаемо оптимизаций. Программы с UB освобождаются от этого правила.
источник

RM

Roy Mustang in C++ Together 2.0
🦊fox.cpp
В том то и дело, что он не идиот.  

Компилятор реализует стандарт, в стандарте есть as-if rule касаемо оптимизаций. Программы с UB освобождаются от этого правила.
аа даже так
источник

RM

Roy Mustang in C++ Together 2.0
Я бы на месте компилятора выкинул нахуй b
источник

🦊

🦊fox.cpp in C++ Together 2.0
Roy Mustang
аа даже так
Эти два нюанса привели к тому, что оптимизирующие компиляторы предполагают, что UB никогда не будет.
источник

🦊

🦊fox.cpp in C++ Together 2.0
И делают оптимизации, основываясь на этом.
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
🦊fox.cpp
Ммм, недосып - штука страшная.
Так спи, что мешает
источник

🦊

🦊fox.cpp in C++ Together 2.0
Alex Ф-ф-фэils!🌠︙
Так спи, что мешает
жизнь весёлая мешает
источник

A

Alex Ф-ф-фэils!🌠︙... in C++ Together 2.0
🦊fox.cpp
жизнь весёлая мешает
Понимаю
источник

🦊

🦊fox.cpp in C++ Together 2.0
🦊fox.cpp
И делают оптимизации, основываясь на этом.
UB здесь - изменение и чтение данных в одной операции без точек синхронизации (см. модель памяти)
источник

🦊

🦊fox.cpp in C++ Together 2.0
Компилятор имеет право сделать предположение, что такого никогда не напишут.
источник

p

pepeground_bot in C++ Together 2.0
что ты хочешь использовать больше одного ядра? никогда не работал еще с асио. имеет смысл конфигурировать через cmake, если в рантайме!
источник

🦊

🦊fox.cpp in C++ Together 2.0
И следовательно переставить операнды +
источник

CC

Cool Cooler in C++ Together 2.0
Я раньше думал, что для операторов, которые между и возвращают своё значение, левый операнд вычисляется первым, а потом уже правый.
Походу, это (почти) так только для || и && (почти, потому что для них же правый операнд может вообще не вычисляться, если возвращаемое значение ясно по левому)

Оказывается, оно не определено
источник

🦊

🦊fox.cpp in C++ Together 2.0
Да, только, кажется, || и && гарантируют порядок вычисления.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Это фича этих операторов вообще говоря.
источник

🦊

🦊fox.cpp in C++ Together 2.0
Про что мы с роем даже говорили.
источник