Спасибо за видео:) Всегда с нетерпением жду выхода новых роликов. Снимайте чаще) Авторов, которые выпускают видео о программировании, очень много, хотя они все похожи друг на друга, а альтернативных Вашему каналу и по формату и по набору тем я не нашел)
Моя постоянно пополняемая коллекция вопросов по С++ github.com/dariaemacs/InverviewQuestions Про undefined behavior: habr.com/ru/post/216189/ eel.is/c++draft/intro.execution#12 en.cppreference.com/w/cpp/language/eval_order Про переполнение int: stackoverflow.com/questions/7682477/why-does-integer-overflow-on-x86-with-gcc-cause-an-infinite-loop
2:26 - вопрос про using cppquiz.org/quiz/question/227 4:12 - вопрос про шаблоны cppquiz.org/quiz/question/125 7:27 - вопрос про последовательность вызовов конструкторов и деструкторов cppquiz.org/quiz/question/16 9:01 - вопрос про volatile cppquiz.org/quiz/question/148 13:38 - вопрос про конструктор копирования и auto cppquiz.org/quiz/question/28 16:22 - вопрос про копирующий оператор присваивания и конструктор копирования cppquiz.org/quiz/question/32 18:43 - вопрос про operator auto() cppquiz.org/quiz/question/236 19:57 - вопрос про переполнения знакового целочисленного типа (signed int) cppquiz.org/quiz/question/25 21:18 - вопрос про std::map с подвохом cppquiz.org/quiz/question/135
Все эти контрольные вопросы не имеет никакого отношения к реальной работе! Если бы кто-то на работе написал бы такой код-ребус выгнали бы к чертям собачьим. А уж написать петли на нею на c++ легче лёгкого
Начиная с C++20 template можно опускать (abbreviated function template): auto func(std::integral auto x, std::integral auto y) -> decltype(x+y) { return x + y; }
Меня больше всего вот эта строчка заинтересовала: f(++i,++i); // undefined behavior until C++17, unspecified behavior after C++17 Что? Почему? Undefined отличается от unspecified тем, что первый даёт неопределённый результат, а второй даёт неопределенную последовательность выполнения, которая приводит к определенному результату (коммутативность). Так что такого изменилось в C++20, чтобы там что-то изменилось?
Определено только переполнение беззнаковых. Но в большинстве случаев это даст -(2^(bits-1)), потому что почти везде используется "дополнительный код". Так что с вероятностью 0.(9) так и будет.
Видео было довольно интересным и полезным, заодно сама проверила себя на знание особенностей С++ И благодаря тебе я узнала про этот замечательный сайт, спасибо :)
13:00 в вопросе о volatile. То, что нет гарантий по предварительной инициализации - вполне логично: зачем давать гарантии по вопросу переменной, которую априори может изменить КТО УГОДНО: другой поток, другой процесс через общее поле памяти, прерывание, сигнал, DMA-транзакция, датчик физического сигнала, такт аппаратного счётчика. Нет гарантий при работе программы - неча давать их вообще.
В конкрет6ои примере будет всегда 0. Ее никто не меняет. Это просто указание при любом доступе к ней перезагружать ее из памяти. Тут проблема только в том что аргументы у функции - это 2 volatile и не понятен порядок доступа. Но ничего кроме нуля в конкретном примере быть не может. Вопрос очевидно некорректный
Поставил бы 100 лайков, но можно только один... Интересно послушать такие рассуждения, так как интересно понимать как думают люди у которых хороший опыт, и ведут поиск ошибки, это похоже на индивидуальный алгоритм понимания
Спасибо, Николай. В мире много прекрасных профессий. Некоторые опытные программисты уходят из программирования и становятся, например, фермерами, сварщиками или пожарными. Главное, чтобы человек был счастлив!
Тимур, пойдите в блок вегетарианца и расскажите, как полезно есть мясо. А потом пойдите в блок мясоеда и напишите, что он дурак, мясо - это отрава. Там Вы найдете бОльший отклик и веселья).
Спасибо, Михаил! Мне тоже это очень нравится)), но, по моим представлениям, зрителям это будет скучно смотреть. Оказывается, это не так)). Тогда буду делать.
@@DariaEmacs Просто это очень жизненно, потому что все же ходят на собеседования) А если вы охватываете вопросы совершенно разного уровня, то это неизменно будет интересно специалистам с разной квалификацией) То есть широкому кругу людей. Я уже лет пятнадцать в программировании. В основном это был с++, текущая работа про питон. Но я всегда нахожу у вас в роликах, чему поучиться.
А насчет "глобальная перменная 0" найти можно ссылочку? А то в стандартах до 17 там всегда мусор. Вот статического анализатора правила: www.viva64.com/en/t/0078/
@@namarishka2731 Это не то. Это инициализация статиков/глобалок, когда заданно значение. Переменные БЕЗ начального значения, всегда содержат мусор,. если это не класс с конструктором. Тогда вызывается конструктор без параметров, если он не удален.
@@alexzk3 , простите, но мне кажется, что вы невнимательно изучили данную статью. Там есть линки на zero initialization, и в каких случаях это происходит. Также, пожалуйста, просмотрите примеры кода, которые приводятся в документации (особенно в разделе zero initialization). Удобнее всего начать разбираться именно с того линка, который был в моем предыдущем комментарии, а потом переходить к разделам по zero & constant инициализациям, чтобы составить полную картину. UPD. Поясню. Думаю, что 4 минуты зазора между нашими комментариями, минус время на написание вашего коммента - этого маловато, чтобы подробно разобраться в статье и ответственно заявить, что "это не то" :)