Спасибо за видео:) Всегда с нетерпением жду выхода новых роликов. Снимайте чаще) Авторов, которые выпускают видео о программировании, очень много, хотя они все похожи друг на друга, а альтернативных Вашему каналу и по формату и по набору тем я не нашел)
Моя постоянно пополняемая коллекция вопросов по С++ 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) так и будет.
Видео было довольно интересным и полезным, заодно сама проверила себя на знание особенностей С++ И благодаря тебе я узнала про этот замечательный сайт, спасибо :)
Поставил бы 100 лайков, но можно только один... Интересно послушать такие рассуждения, так как интересно понимать как думают люди у которых хороший опыт, и ведут поиск ошибки, это похоже на индивидуальный алгоритм понимания
13:00 в вопросе о volatile. То, что нет гарантий по предварительной инициализации - вполне логично: зачем давать гарантии по вопросу переменной, которую априори может изменить КТО УГОДНО: другой поток, другой процесс через общее поле памяти, прерывание, сигнал, DMA-транзакция, датчик физического сигнала, такт аппаратного счётчика. Нет гарантий при работе программы - неча давать их вообще.
В конкрет6ои примере будет всегда 0. Ее никто не меняет. Это просто указание при любом доступе к ней перезагружать ее из памяти. Тут проблема только в том что аргументы у функции - это 2 volatile и не понятен порядок доступа. Но ничего кроме нуля в конкретном примере быть не может. Вопрос очевидно некорректный
Спасибо, Николай. В мире много прекрасных профессий. Некоторые опытные программисты уходят из программирования и становятся, например, фермерами, сварщиками или пожарными. Главное, чтобы человек был счастлив!
Тимур, пойдите в блок вегетарианца и расскажите, как полезно есть мясо. А потом пойдите в блок мясоеда и напишите, что он дурак, мясо - это отрава. Там Вы найдете бОльший отклик и веселья).
Спасибо, Михаил! Мне тоже это очень нравится)), но, по моим представлениям, зрителям это будет скучно смотреть. Оказывается, это не так)). Тогда буду делать.
@@DariaEmacs Просто это очень жизненно, потому что все же ходят на собеседования) А если вы охватываете вопросы совершенно разного уровня, то это неизменно будет интересно специалистам с разной квалификацией) То есть широкому кругу людей. Я уже лет пятнадцать в программировании. В основном это был с++, текущая работа про питон. Но я всегда нахожу у вас в роликах, чему поучиться.
А насчет "глобальная перменная 0" найти можно ссылочку? А то в стандартах до 17 там всегда мусор. Вот статического анализатора правила: www.viva64.com/en/t/0078/
@@namarishka2731 Это не то. Это инициализация статиков/глобалок, когда заданно значение. Переменные БЕЗ начального значения, всегда содержат мусор,. если это не класс с конструктором. Тогда вызывается конструктор без параметров, если он не удален.
@@alexzk3 , простите, но мне кажется, что вы невнимательно изучили данную статью. Там есть линки на zero initialization, и в каких случаях это происходит. Также, пожалуйста, просмотрите примеры кода, которые приводятся в документации (особенно в разделе zero initialization). Удобнее всего начать разбираться именно с того линка, который был в моем предыдущем комментарии, а потом переходить к разделам по zero & constant инициализациям, чтобы составить полную картину. UPD. Поясню. Думаю, что 4 минуты зазора между нашими комментариями, минус время на написание вашего коммента - этого маловато, чтобы подробно разобраться в статье и ответственно заявить, что "это не то" :)
Спасибо за видео:) Всегда с нетерпением жду выхода новых роликов. Снимайте чаще) Авторов, которые выпускают видео о программировании, очень много, хотя они все похожи друг на друга, а альтернативных Вашему каналу и по формату и по набору тем я не нашел)
Моя постоянно пополняемая коллекция вопросов по С++ 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) так и будет.
Я често говоря ещё ни разу не видел такого, чтобы метод через алиас объявляли, это может быть весьма удобным.
Соррян я туповата для вашего телеграмм канала 😅очень умные люди))
Дарья, я вас смотрю и вы мне просто поднимаете настроение) обязательно снимайте дальше!)
Спасибо)!
Видео было довольно интересным и полезным, заодно сама проверила себя на знание особенностей С++
И благодаря тебе я узнала про этот замечательный сайт, спасибо :)
Спасибо, Алина).
с++ изменился, хотя это я наверн не знал такие вещи
блин, пишу на ++ под микроконтроллеры но и половины из того что увидел ни разу не использовал..
Спасибо большое, очень интересно! За ссылку на коллекцию вопросов отдельная благодарность :)
Почему вы сказали что в не инициализированную переменную кладется 0 ? Как раз таки без инициализации там лежит мусор. Поправьте если я ошибаюсь.
Все, извиняюсь. Это зависит от сегмента памяти. В глобальных 0, в локальных мусор. 😁
Доброе утро!!!
Спасибо)))
Доброе утро, Дмитрий! 😃
Если вы действительно изучаете плюсы, то лучшего канала не существует
Илья! 🥰
было интересно)
Спасибо ❤️
Классное видео! Спасибо!
ура видосик, ура!
Только всё-таки шаблон функции, а не шаблонную функцию)
Что за толстая книга на заднем фоне ?
Страуструп
Спасибо за видео
Спасибо, Александр
Интересный формат, но возможно стоило бы больше делать пояснений и примеров с раскрытием темы.
Эх ,не хотел сегодня не на кого подписываться , пришлось , еще и лайк даже пришлось поставить .
Ни чЁ Се с утра прям и сразу Плюсы Оо ))))
А посмотрите его вечером)).
@@DariaEmacs Тимур Абдулов тоже программист .
И весьма хороший
Программист, который считает программирование "гиблым делом"? Это, по крайней мере, странно..
@@DariaEmacs хотя он программист, по моему он не работает программистом
Спасибо! Благодаря объяснением много узнал и много вспомнил! А где-то стал внимательней :))
Спасибо, Никита! :)
Поставил бы 100 лайков, но можно только один... Интересно послушать такие рассуждения, так как интересно понимать как думают люди у которых хороший опыт, и ведут поиск ошибки, это похоже на индивидуальный алгоритм понимания
Спасибо, Антон!! )) Да, я тоже люблю смотреть и слушать, как рассуждают другие люди, можно много почерпнуть из их опыта.
13:00 в вопросе о volatile. То, что нет гарантий по предварительной инициализации - вполне логично: зачем давать гарантии по вопросу переменной, которую априори может изменить КТО УГОДНО: другой поток, другой процесс через общее поле памяти, прерывание, сигнал, DMA-транзакция, датчик физического сигнала, такт аппаратного счётчика. Нет гарантий при работе программы - неча давать их вообще.
В конкрет6ои примере будет всегда 0. Ее никто не меняет. Это просто указание при любом доступе к ней перезагружать ее из памяти. Тут проблема только в том что аргументы у функции - это 2 volatile и не понятен порядок доступа. Но ничего кроме нуля в конкретном примере быть не может. Вопрос очевидно некорректный
Зашел чисто вас поддержать)
Уже не занимаюсь программированием
ну и правильно сделал гиблое дело )
Спасибо, Николай. В мире много прекрасных профессий. Некоторые опытные программисты уходят из программирования и становятся, например, фермерами, сварщиками или пожарными. Главное, чтобы человек был счастлив!
Тимур, пойдите в блок вегетарианца и расскажите, как полезно есть мясо. А потом пойдите в блок мясоеда и напишите, что он дурак, мясо - это отрава. Там Вы найдете бОльший отклик и веселья).
@@DariaEmacs в Бизнес еще вот )))
@@ТимурАбдулов по моему между вами какой-та конфликт?
Уже в нескольких местах вы в этих комментариях вы ведёте себя так.
От танца никакой тест не устоит.
Дарья, укажите, пожалуйста, ваши контактные данные в телеграм и ВК в описании
🤣
Дарья где вы сейчас работаете?
Я сейчас работаю на себя, у меня было видео на эту тему.
@@DariaEmacs на фрилансе?
Какие проекты вы разрабатываете?
Приложения.
@@DariaEmacs Ну и какие? Или хотя бы ссылку на упомянутое видео.
что за дичь про ub? какие письма начальнику?
Это цитата из классики для программистов С++ ( "Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ" С. Мейерс).
Как раз потихоньку готовлюсь к поиску первой работы, и это видео прям очень кстати! Спасибо ☺️
Буду очень рада, если поможет, Alison! 😊
Спасибо за видос!
Ого, круто!
Жетско!
Что? Нажал на тест С++, а начинается видос со спорта, что за обман
Потому что перед тестом надо разминку сделать)).
Даша, есть приложение под андроид. Так и называется c++ quiz. Жаль, что разработчики забросили проект.
Я на этом сайте видела ссылку на андроид-приложение. Может быть, это оно и есть? Хотела сама такое сделать)), но раз уже есть, подумала, что не надо.
@@DariaEmacs Да, оно и есть. В play market можно найти.
Ничего себе, классная девчонка!!!
Да, бабень умна!
Пришлось начать изучать С++ на пару с дочкой. На этом уровне нам пока делать нечего. Пересмотрим позже.
Сколько дочке лет?
@@РяхаИгоряхи Как показывает жизнь, возраст пипец какой не пробиваемый. 1 курс института.
Папа, молодец)!
Мне кажется, рубрика претендует на то, чтобы стать постоянной)
Спасибо, Михаил! Мне тоже это очень нравится)), но, по моим представлениям, зрителям это будет скучно смотреть. Оказывается, это не так)). Тогда буду делать.
@@DariaEmacs Просто это очень жизненно, потому что все же ходят на собеседования) А если вы охватываете вопросы совершенно разного уровня, то это неизменно будет интересно специалистам с разной квалификацией) То есть широкому кругу людей. Я уже лет пятнадцать в программировании. В основном это был с++, текущая работа про питон. Но я всегда нахожу у вас в роликах, чему поучиться.
Хорошее видео 👍
Спасибо)
А насчет "глобальная перменная 0" найти можно ссылочку? А то в стандартах до 17 там всегда мусор. Вот статического анализатора правила: www.viva64.com/en/t/0078/
en.cppreference.com/w/cpp/language/initialization#Non-local_variables
@@namarishka2731 Это не то. Это инициализация статиков/глобалок, когда заданно значение. Переменные БЕЗ начального значения, всегда содержат мусор,. если это не класс с конструктором. Тогда вызывается конструктор без параметров, если он не удален.
@@alexzk3 , простите, но мне кажется, что вы невнимательно изучили данную статью. Там есть линки на zero initialization, и в каких случаях это происходит. Также, пожалуйста, просмотрите примеры кода, которые приводятся в документации (особенно в разделе zero initialization).
Удобнее всего начать разбираться именно с того линка, который был в моем предыдущем комментарии, а потом переходить к разделам по zero & constant инициализациям, чтобы составить полную картину.
UPD. Поясню. Думаю, что 4 минуты зазора между нашими комментариями, минус время на написание вашего коммента - этого маловато, чтобы подробно разобраться в статье и ответственно заявить, что "это не то" :)
@@alexzk3
> All non-local variables with static storage duration are initialized as part of program startup
Что-то я не вижу в правиле PVS ничего про глобальные переменные