Тонкости С++: странный код, implementation-defined, unspecified и undefined behavior
Русский
Intermediate
В этом тесте будут представлены различные "каверзные" фрагменты кода на С++. Скомпилируется ли этот код? Приведёт ли его выполнение к implementation-defined, unspecified behavior или undefined behavior? А если нет, то что будет выведено в консоль после выполнения кода? Для прохождения этого теста нужно быть знакомым с последними стандартами С++, а также знать, в чём разница между implementation-defined behavior, unspecified behavior и undefined behavior.
Description
33
Questions
1 min
Per question
6:07
Average time
4.6
Contest Score
4.2
Community Rating
15
Participants
4 comments
Giant Snail judge
This test may have a higher chance of receiving a reward. Nominated for:

1. Educational explanations. 👍 Explanations cover why the correct answers are correct and why the wrong answers are wrong (when appropriate). E.g.: #q6, #q7, #q8, etc.
2. Provides a valuable service, teaches something useful that can be used in real life. 👍
3. Step-by-step approach to teaching. 👍 E.g.: #q1, #q2, #q3, #q4, etc.
Mindful Kitten
Вопрос про оператор Элвиса не является корректным https://imgur.com/a/x32FHbL

Conformance compiler view такой, то есть MSVC не принимает это: https://gcc.godbolt.org/z/-HAWbc
http://eel.is/c++draft/expr.cond#2 -- в conditional операторе оба выражения должны присутствовать
Это GNU extension, см https://gcc.gnu.org/onlinedocs/gcc/Conditionals.html#Conditionals

По стандарту это не должно скомпилироваться
Ace Cock author
Хм, и правда, спасибо за замечание
Dmitry Sabrekov
А в 19 вопросе разве unsigned int не может быть 64 битным?
Take the quiz to leave a comment