Такой канал по плюсам - это то, чего не хватало этому миру
@vilture5706Ай бұрын
Ага, а то у Константина Владимирова, слишком сложные нюансы для профи, а у других азы. Середина.
@этоя-д8м5 ай бұрын
все по книжке) идеально для закрепления спасибо!!
@Ma_X646 ай бұрын
С++ прекрасно решает проблемы, которые сам же и создаёт :D Хороший язык. Люблю инструменты, в которые можно закопаться, когда нефиг ими делать.
@КириллИванов-м8м2 ай бұрын
Спасибо, Дмитрий, только с вашими роликами разобрался с умными указателями. Вы очень хорошо объясняете.
@Ali_Ibragimov_Jostkiy6 ай бұрын
Ты крут, чел! И с фоном и с микрофоном наладил прям контент. Микрофон реально решает, слушать тебя приятно! И тематика не банальная! Сам осваиваю C++, вот твои все видосы посмотрю. Это первый. Респект. Так вообще по Константину Владимирову учусь, но у тебя, судя по заголовкам видосов, можно подсмотреть отдельные детали под микроскопом!
@toxic_champ6 ай бұрын
Владимир Константинов не учит, а флексит на лекциях. Понимают его 1-2 подсоса на первых партах, к которым он то и дело по ходу лекции обращается. И то потому что они явно не рядовые студенты, а аспиранты какие-то, которые ту или иную тему уже знают.
@snow_danik71476 ай бұрын
Топ видео, до этого не знал для чего именно это нужно, спасибо)
@denissav10336 ай бұрын
Короче, вижу фигурные скобки -- это семантика списка инициализации. Такая семантика будет +/- общей для разных классов. Если фигурные скобки с одним значением -- просто список инициализации с одним значением. Вижу круглые скобки -- это семантика параметров конструктора. Смысл параметров будет разный для разных классов. Надо смотреть, что там заложил автор класса. Поэтому vector vec{10} // вектор длины 1 со значением 10 vector vec(10) // вектор длины 10 с мусором в качестве значений vector vec{10, 0} // вектор длины 2 со значениями 10 и 0 vector vec(10, 0) // вектор длины 10 со значениями 0
@finemechanic6 ай бұрын
Интересный совет по проектированию интерфейсов: делать так, чтобы инициализация в круглых скобках не отличалась от инициализации в фигурных скобка. Тогда вопрос, зачем нужны разные виды скобок.
@diez40056 ай бұрын
А как же обратная совместимость ?
@robbieazreal31926 ай бұрын
Для того чтобы ТЫ страдал!
@diez40056 ай бұрын
@@robbieazreal3192 🤣 Не, ну не так чтоб совсем страдал, но нервно оглядываться на очередной стандарт придётся )
@denissav10336 ай бұрын
> делать так, чтобы инициализация в круглых скобках не отличалась Нет. См. например std::vector.
@doctorwho49756 ай бұрын
Круто, помогли, наконец, разобраться что и как работает, спасибо!!
@iusehjkl5 ай бұрын
2:10. Почему на этом моменте компилятор не сгенерировал оператор перемещения или конструктор перемещения? Потому что есть явно определенный конструктор копирования или оператор копирования?
@there14404 ай бұрын
На сколько мне move семантика применяется когда объект является rvalue значением то есть временным объектом
Я мимокрокодил, потому что синтаксиса такого не видел (не пишу на плюсах), но ролик на 18 минут про отличие двух строчек кода... Вау
@alexbork42506 ай бұрын
@@tgitw-tq6iu невозможно объяснить за 3 минуты?
@nukesturbator6 ай бұрын
Фигурная инициализация - интересная тема, хорошо осветил список инициализации (как мне кажется не стоило ломать язык и двадцать минут назвать его "инищиалайзер лист". В целом, лайк конечно
@viper_00976 ай бұрын
Почти всё я знал, кроме конфликтов с std::initializer_list. Меня удивило то, что в ютубе такие темы освещаются
@VladykaVladykov6 ай бұрын
Наверное, надёжней использовать конструкцию вида auto value = ValueType(Args...)
@billjohnes93806 ай бұрын
5:15 Ничего там не заменится, там сначала вычислится 5.8, а уже потом, при последующей попытке сужения этого значения, и произойдёт ошибка. 15:02 А второй элемент равен не 2-м.
@dmitriyv45576 ай бұрын
А вот вас я бы с удовольствием взял на работу над реально серьезными задачами. Молодец!
@wsxpocxeafx13 күн бұрын
@@dmitriyv4557 взяли бы из-за элементарного замечания?
@dmitriyv455713 күн бұрын
@@wsxpocxeafx за внимательность. Это крайне важная черта характера для хорошего разраба.
@VladykaVladykov6 ай бұрын
С приведением типов всегда была проблема в языке. Поэтому у нас есть explicit
@4spor_t6 ай бұрын
Где автор был раньше?!??!? Спасибо большое за видео!
@Lekan6756 ай бұрын
Неожиданно, про С++ мне рассказывает Кевин ДеБрюйне ))
@MakarenkoSasha6 ай бұрын
блин. точно )))
@cavesalamander6308Күн бұрын
А warning'и по поводу ambiguity вызовов выдаются? Или втихушку гадит?
@ExarKun_6 ай бұрын
Дайте мне переопределение операций в джаву!!!
@asjvchnvh93136 ай бұрын
В рукомендациях залетел твой канал, очень круто делаешь! Подумай о том, чтобы сделать видео о rvalue ссылках. Ни одно видео мне не дало 100 процентного понимаю что да как
@eugenenuribekov123115 күн бұрын
Фигурные скобки это старая добрая агрегатная инициализация из С. Просто ее применение несколько расширили.
@DigitRoach6 ай бұрын
Мне кажется он похож на чела Simple Code , но более продвинутой версии
@idodoqdo57836 ай бұрын
Круто, поддержу комментарием
@СемёнСемёныч-к4е6 ай бұрын
Складывается ощущение, что эти нововведения делаются так: - всех нормальных людей всё устраивает - какой-то задрот теоретик, далёкий от энтерпрайза: "а вот МНЕ нехватает какой-то херни, которая нахрен никому не нужна" - разрабы плюсов : "СРОЧНО ВЫПУСКАЕМ ОБНОВЛЕНИЕ" - задрот доволен, нормальные люди страдают
@Icanfly-4 ай бұрын
Создатели C++ забыли для чего нужен любой язык программирования - для решения прикладных/бизнес задач, вместо этого они решают проблемы самого C++
@wsxpocxeafx13 күн бұрын
Ждём Carbon
@cavesalamander6308Күн бұрын
Неточно. Точнее будет: решают проблемы языка, одновременно создавая ворох новых. Юзаю в своем уголке С++98 и счастлив.
@kunak11977 ай бұрын
"19 различных способов инициализировать int" - это вам не это. Есть классная статья на Хабре "Инициализация в современном C++", от которой теоретики в ужасе, как на ЭТОМ можно кодить. Зато практики такими вопросами не задаются, т.к. любят/вынуждены ходить по граблям и веруют в то, что кодируют без ошибок и UB. Иногда их в этом пытаются разубедить статические анализаторы, санитайзеры, паники, крэшы и хакеры. Особенно весело, когда в новом релизе стандарта опять что-то улучшили.
@prayer46756 ай бұрын
Интересно, на сколько инициализация в Rust лучше только что рассказанного шаманства в современном C++?
@MakarenkoSasha6 ай бұрын
ни на сколько.
@prayer46756 ай бұрын
@@MakarenkoSasha Что-то я там такого шаманства не прироминаю. А вы?
@MakarenkoSasha6 ай бұрын
@@prayer4675 просто для меня это не шаманство.. видимо 25 лет с++ оставляют отпечаток.
@AlexAlex-jk2tn6 ай бұрын
Просто раст такого делать не умеет, вот вы и не припоминаете
@prayer46756 ай бұрын
@@AlexAlex-jk2tn Ну а зачем шаманить, когда нужно просто проинициализировать?
@Ar6yZuK6 ай бұрын
Std initializer list и все эти неявные касты типов ломают статическую типизацию
@nikolaytomov49196 ай бұрын
Страхотно видео. Абонирах се за канала, и изгледах всичките ти видеа. Много са полезни и информативни. Бихте ли обяснили промените в С++ 20 и 23? Как могат да се използват модулите въведени със С++/20? Каква е ситуацията с общодостъпни модули включващи стандартната езикова библиотека? Извинете за отвратителната граматика (предполагам е отвратителна), но използвам гугъл преводач, понеже руския ми е много слаб.
@__is_Void7 ай бұрын
👍🏻
@lev-th7 ай бұрын
1:40 Не будет вызван конструктор копирования, эта строка буквально идентична предыдущей. Будет точно так же вызыван только конструктор, соответствующий параметрам в списке инициализации.
@z1401406 ай бұрын
для int(int) это и будет конструктор копирования. а дальше он приводит пример с кастомным классом, и это подводка к этому примеру
@lev-th6 ай бұрын
@@z140140 примеры принципиально различаются.
@lev-th6 ай бұрын
@@z140140Примеры принципиально различаются. В первом случае, аналогично как если бы переменная инициализировалась возвращаемым из функции значением, произойдет элизия копирования. Эта оптимизация существует 25 лет и включена по умолчанию даже на О0 во всех компиляторах.
@МихаилГалин-п6в6 ай бұрын
Какой это редактор кода?
@alexanderm83126 ай бұрын
QtCreator
@Koteyka14896 ай бұрын
Топ контент
@grinlex6 ай бұрын
У вас такой отличный голос. Не пробовали быть диктором?
@luckystrike916 ай бұрын
конструкторы это ошибка language disign, как и исключения. хорошо, что есть языки, где это пофиксили
@Satabol6 ай бұрын
"Скотт Майерс называет это примером плохого дизайна интерфейса..." Не хочу хейтить, но раз язык позволяет, значит это зачем-то нужно. Но в принципе мне ролик понравился. Уже лет 25 не программировал на C++ по серьёзному, а хочется вернуться. Достаточно легко слушать видео и визуализация лёгкая для понимания. Кстати, а что за редактор кода?
@PolevoysProgramming6 ай бұрын
Редактор - Qt Creator
@Ox111BA6FA6 ай бұрын
1:32 - и зачем это, интересно, при работе с пользовательским классом нужно знать когда конструктор копирования, а когда оператор присваивания? у нормальных классов это одно и то же, порой реализовано одно через другое. если пользовательский класс написан о4ком и там оно разное - то это плохой класс, не используйте его или перепишите, с ним будет только больше проблем. и не нужно, наяривать на свои скобки, компилятор все сделает за вас. разницу имеет смысл смотреть только в конечном собранном коде. все остальные рассуждения - ниач0м. в стандарте может быть написано что угодно, а компилятор сделает совершенно другое и оптимизированное. один компилятор сделает одно, другой - другое.
@wsxpocxeafx7 ай бұрын
Досмотрел до конца, пропало желание учить C++ 😂
@billjohnes93806 ай бұрын
Учить C++ следует только в одном случае. Когда соблюдено одно важное условие. Условие простое: необходимо любить C++. В остальных случаях это будет каторга, и, в результате, ничего не получится.
@wsxpocxeafx6 ай бұрын
@@billjohnes9380 ещё если есть необходимость его учить, например, чтобы вносить изменения в какой-нибудь OpenMW, или чтобы разрабатывать, например, игры на UE5, это первое, что в голову пришло, не знаю куда ещё плюс можно применить, когда есть C# и Kotlin, каждый по своему хорошо. Второй крут корутинами, Compose Multiplatform и коротким синтаксисом, а C# поддерживается мировым гигантом, постоянно развивается и ближе к плюсам по возможностям, на мой субъективный взгляд, чем Kotlin.
@wsxpocxeafx6 ай бұрын
ijnpsdgnbfds ljhtheagw ajpinwgesns;grtegawfqlejsnfglaegjkfwn egcljkxzgrnzdghjlk`tNAg bdjzghkef3bnrsz egjkrgkfawEszgrbiegjsabizdfjrgsken ещё если есть необходимость его учить, например, чтобы вносить изменения в какой-нибудь OpenMW, или чтобы разрабатывать, например, игры на UE5, это первое, что в голову пришло, не знаю куда ещё плюс можно применить, когда есть C# и Kotlin, каждый по своему хорошо. Второй крут корутинами, Compose Multiplatform и коротким синтаксисом, а C# поддерживается мировым гигантом, постоянно развивается и ближе к плюсам по возможностям, на мой субъективный взгляд, чем Kotlin.
@wsxpocxeafx6 ай бұрын
@@billjohnes9380 ______________ ещё если есть необходимость его учить, например, чтобы вносить изменения в какой-нибудь OpenMW, или чтобы разрабатывать, например, игры на UE5, это первое, что в голову пришло, не знаю куда ещё плюс можно применить, когда есть C# и Kotlin, каждый по своему хорошо. Второй крут корутинами, Com_pose Multip_latfo_rm и коротким синтаксисом, а C# поддерживается мировым гигантом, постоянно развивается и ближе к плюсам по возможностям, на мой субъективный взгляд, чем Kotlin.
@wsxpocxeafx6 ай бұрын
@@billjohnes9380 прошлое сообщение адресовано тебе. Не справшивай почему всё так 🤣🤦♂🤦♂🤦♂
@Novator_Progressive6 ай бұрын
Какие-то странные сущности, и их назначение не очевидно. Теперь понятно, почему многие ругают плюсы.
@redon6387 ай бұрын
Синтаксис c++ превратился в цыганский табор, и ощущается он не как язык программирования, а как русский язык, где в каждом правиле есть свои особенности и, чтобы действительно разобраться во всех тонкостях, надо положить жизнь на это. Мне кажется для этого языка уже нет хорошего применения в новых проектах, которые не зависят от старого кода.
@book17386 ай бұрын
По твоему есть что-то лучше С++, rust, python или может C ?
@book17386 ай бұрын
Я конечно понимаю что каждый язык программирования лучше в определенной сфере, но в данном случае что лучше чем С++??
@AlexanderKozaevRu6 ай бұрын
@@book1738 для низкого уровня - си, чтобы на нём для конкретной платформы написать LISP-машину для прикладного программирования
@unethicql6 ай бұрын
А что ты хотел? Любая технология или наука со временем разрастается, потому что развивается и для ее изучения приходится тратить много времени. Многие вещи внедрены в целях безопасности/оптимизации и т.д. К тому же тебя никто не обязывает использовать новейшие нововведения стандартов.
@link-meow6 ай бұрын
😅@@book1738
@donlinoleum8316 ай бұрын
Вот это топ видос! Я стал умнее! Наверное. Спасибо!
@bannnnnn7 ай бұрын
Когда интересно но не понятно
@DART2WADER6 ай бұрын
8:30 вы не последовательны))) : data(initList) {} => : data{initList} {}
@wsxpocxeafx7 ай бұрын
Высококачественная подача материала и хорошая речь.
@bsprspktvnk6 ай бұрын
fifine am8
@ДмитрийЛи-п5г3 күн бұрын
я вот 35 секунд смотрю, у меня 2 раза уже стул сгорел подо мной.. программисты епт
@teum30486 ай бұрын
А потом они рассказывают, что в js не интуитивное преобразование типов и сравнение == 😂🤣🤣
@eugenez7955Ай бұрын
Мда уж. Неявное преобразование в сях это жесть
@azerqgaming6 ай бұрын
Я .net разработчик, зачем я это смотрю 😂
@dmitriyv45576 ай бұрын
Ну как, теперь ты знаешь, что и в С++ подналожили синтаксического сахара, и есть масса возможностей сбить с толку новичков совершенно тривиальными вещами, записанными через задницу. 😊
@euuhgzz27916 ай бұрын
А нада быть .da разработчиком
@animemchikАй бұрын
Я в шоке что у программистов на С++ такие же вопросы как и у нас бедных плебеев с других языков
@Hobby20076 ай бұрын
После подобных видио появляется желание сделать свой собственный яп, такой-же быстрый и низкоуровневый как С/С++, но намного проще, чисто из-за того что будет вырезано большенство бесполезного/заменяемого функционала. Думаю лет через 20 - 30 сделаю. А то я только новичок не сильно шарю. Вдруг всë что я считаю бесполезным на самом деле необходимо.
@diez40056 ай бұрын
Есть же ASM он реально выглядит попроще )
@Hobby20076 ай бұрын
@@diez4005 в нëм на самом деле тоже много лишнего если бы мог то и его переделал но тогда возможно и сам процессор придëтся переделовать мне на подобное жизни не хватит
@Kalin_cheetah6 ай бұрын
@@Hobby2007 а не мог бы ты заодно переделать ткань вселенной и заодно человеческую природу так, чтобы не было ни пороков, ни зла, ни смерти?
@Hobby20076 ай бұрын
@@Kalin_cheetah звучит тяжело
@Hobby20076 ай бұрын
@@tgitw-tq6iu естественно я не знаю что такое ЦПП, и ни кто мне про него раньше не говорил. Загуглил вот: ЦПП - Центр Поддержки Пользователей:) Но если ты имел ввиду Центральный Процессор, то я лишь поверхностно представляю его архитектуру, и мне в этом ещё предстоит разобраться.
@grinlex6 ай бұрын
я не знаю, может только у меня такая проблема, но микрофон очень бьёт в уши