Спасибо чувак, крутой конт. A using className::function; и using namespace blabla; по сути то же самое или ...
@hostpost9752Ай бұрын
супер контент 😉
@dmitrykukushkin49602 ай бұрын
Благодарю, весьма.
@greatskydrake95312 ай бұрын
Я ТРЕБУЮ ПРОДОЛЖЕНИЯ!!!
@anar26092 ай бұрын
Каким ide вы аользовались в данном видеоролике ?
@PolevoysProgramming2 ай бұрын
@@anar2609 Привет, это Qt Creator (использую его на работе для работы с фреймворком qt)
@anar26092 ай бұрын
@@PolevoysProgramming наверное он не подойдёт для работы с консольными программами, вебом и прочим не относящимся к Qt Framework
@PolevoysProgramming2 ай бұрын
@@anar2609 В целом может подойти, на данный момент мы как раз пишем сервер (консольные приложение) к веб сайту, и используем qt+boost для связки, там много удобных классов, не связанных именно с графическим интерфейсом + при желании qt без проблем интегрируется с другими IDE ( например Visual Studio) при необходимости
@Icanfly-2 ай бұрын
Создатели C++ забыли для чего нужен любой язык программирования - для решения прикладных/бизнес задач, вместо этого они решают проблемы самого C++
@РоманКондратов-г1р2 ай бұрын
Видео крутые. Но новых давно нет. Жалко. Автор, дорогой, заведи бусти. Многим туда проще подписываться.
@этоя-д8м3 ай бұрын
спасибо большое))
@Artem-u5e9c3 ай бұрын
Отличный контент! Подписался 👍
@этоя-д8м3 ай бұрын
все по книжке) идеально для закрепления спасибо!!
@o011223 ай бұрын
Набрал себе новых книг по С++, тоже изучаю. Пол Дейтел, Хариви Дейтел "С++ 20 Метод готовых объектов" 24й год, 1050стр, потом Райнер Гримм "С++ 20 В Деталях" 500стр, 23 год и ДЖ. Гай Дэвидсон, Кейт Георги "Красивый С++" с пометкой Страуструп рекомендует, 360стр и 23 год.
@elektroyartechnology51173 ай бұрын
Прям супер, четко изложено, качественное видео
@РоманКондратов-г1р3 ай бұрын
Содержание и подача отличное. Спасибо. Если можно, заведи бусти.
@ИнякинАлександр3 ай бұрын
Проверка if(ptr) в деструкторе лишняя.
@tonch933 ай бұрын
Выпускайте почаще видео про с++! Очень полезные
@tonch933 ай бұрын
Прекрасный канал. Очень полезный материал. Спасибо
@iusehjkl3 ай бұрын
2:10. Почему на этом моменте компилятор не сгенерировал оператор перемещения или конструктор перемещения? Потому что есть явно определенный конструктор копирования или оператор копирования?
@there14402 ай бұрын
На сколько мне move семантика применяется когда объект является rvalue значением то есть временным объектом
@Zealoke3 ай бұрын
очень жаль, что вы не на бусти решили разместиться. бусти как то уже привычнее
@яйцопожаренное3 ай бұрын
Спасибо тебе реально за грамотные видео, очень было интересно послушать, продолжай в том же духе, по комментариям у тебя уже есть любящая аудитория (я вхожу в ее часть) и она только продолжит расти с такими классными видео, у тебя классная харизма и подача, лучший обучающий канал
@ImmerseAlien3 ай бұрын
Очень круто!
@qliquiz26873 ай бұрын
емае, я только книгу Майерса скачал, а теперь не пригодится
@theserghd13 ай бұрын
татуха уебанская. Но ролик в целом норм
@kunak11973 ай бұрын
Есть интересный пропозал: P2413R0 Remove unsafe conversions of unique_ptr<T> Published Proposal, 2021-07-12 Суть в том, чтобы выдавать ошибку компиляции unique_ptr<Base> = unique_ptr<Derive>(new Derive{}); если в Base нет виртуального деструктора. Просьба к автору объяснить, почему для unique_ptr и shared_ptr не работает CTAD (C++17). И ещë почему надо использовать make_optional для std::optional.
@ARTYOM-v2j3 ай бұрын
мечты сбываются, спасибо
@vlasud20183 ай бұрын
Очень хотелось бы подобное видео про касты (static_cast, dynamic_cast и т.д)
@euuhgzz27913 ай бұрын
Eto yje ne RAi eto yje kakoita AD
@Alexander_Gurov_RF3 ай бұрын
В принципе в современных версиях c++ умные указатели не особо нужны. Кроме, пожалуй, shared_ptr. Синтаксис слишком громоздкий, да и избыточно. Можно просто использовать контейнеры. Для массивов - vector. А в c++17 есть такие полезные штуки, как variant и optional. Обёрток куча на все случаи жизни, которые всё сами делают.
@AlexAlex-jk2tn3 ай бұрын
Надеюсь вы шутите, это сырые указатели не нужны, а умные ещё как нужны, постоянно их использую. Я бы даже сказал, что тех, что есть умных указателей иногда не хватает, но boost расширяет их список почти до того, что нужно.
@Alexander_Gurov_RF3 ай бұрын
@@AlexAlex-jk2tn Они в редких случаях нужны. Например, для полиморфных объектов. Там при создании тип указателя надо кастовость, и размер может отличаться. И просто так в контейнер не положишь. Или при работе с сишным API, как обёртки для хранения множества сырых указателей. Всё остальное отлично живёт в любых других контейнерах. И я лично стараюсь вообще избегать использовать new/delete где-то, кроме конструкторов/деструкторов. А лучше и вообще нигде, так как контейнеры всё делают сами. Потому что это ведёт к потенциальным ошибкам.
@wsxpocxeafx3 ай бұрын
@@Alexander_Gurov_RF приведите пример. Про какие контейнеры идёт речь?
@Alexander_Gurov_RF3 ай бұрын
@@wsxpocxeafx Странный вопрос. Любой, в зависимости от задач. vector, list, dequeue, map - для множеств, variant, optional, any - для одного объекта. Если объект нужен только в пределах функции - то создаём на стёке.
@Alexander_Gurov_RF3 ай бұрын
@@wsxpocxeafx это лучше вы приведите пример, где нужен unique_ptr, кроме полиморфных объектов.
А зачем ему обнулять указатель? В примере он приводит объект, который хранится на стеке, соответственно он вызовет деструктор, когда выйдет за область видимости, а при вызове деструктора освободится память, выделенная на куче для указателя. Получается обнулять указатель смысла нету, ведь на него сослаться будет невозможно, т.к. объекта существовать не будет.
@KanoKloz3 ай бұрын
Достойно подписки и колокольчика, чтобы не пропускать новые полезные видео, спасибо автору!
@__is_Void3 ай бұрын
Лайки растут на глазах
@НикитаСолоненко-р5ы3 ай бұрын
Насколько мне известно, unique_ptr реализован без аллокаторов(нет поддержки allocator_traits), он под собой реализован на placement new? Или просто в тупую использует new?
@mexal213 ай бұрын
Он вообще память не аллоцирует
@АлександрТимофейлох3 ай бұрын
с таким четким аккуратным контентом, приятным аудио и видео сопровождением с востребованным материалом твой канал ждет скорейший успех в этой нише. Были бы такие учителя, жить было бы легче
@luteyka3 ай бұрын
Кстати, даже Microsoft советует почти всегда использовать auto
@luteyka3 ай бұрын
Единственный канал по C++ с "современным" типом подачи. Как ни зайдешь на любой видос по плюсам, это какой-то хриплый полудед с убогим микрофоном. А тут прям все так, будто смотришь какой-то ролик по фронтэнду, снятый девочкой-дизайнером (в хорошем смысле). Кратко, лаконично, музычка на заднем фоне, вебочка круглая, превью красивое
@timoha-034 ай бұрын
Расскажи лучше о том, как работает cerr.
@assad-4 ай бұрын
я лично против использования auto в негерализированном коде. да, ты не сделаешь лишний раз варнинг, но в коде где стоят одни авто очень трудно понимать, что происходит. это больше про вариант {auto | unsigned} s = vector.size(); например auto a = someclass.somemethod() не поймешь что за тип вернулся, какие у него есть методы. не нужно экономить буквы ради того чтобы просто ускорить печать. код пишется чтобы его читали. а так понятнее. а в случае даже unsigned s = vector.size(); будет варнинг, который должен превращаться в ошибку. в случае про вектор там скорее другой момент -- компиляция под разные платформы и можно этот варнинг не увидеть, но все же в остальных случаях полность квалифицированный тип удобнее. понятно, что иногда нужно избавиться от длинного шаблонного типа, который и так ничего не значит. тогда и auto пойдёт, но всё ж по возможности в таком коде лучше предпочитать конкретный тип.
@SalatikInMyHeadАй бұрын
может будеш методы норм называть вместо somemethod, а не на авто гнать? 🤦👎
@teum30484 ай бұрын
А потом они рассказывают, что в js не интуитивное преобразование типов и сравнение == 😂🤣🤣
@4tigeek244 ай бұрын
Мегакруто. Хоть и знаю этот материал, все равно приятно слушать) Да и некоторые кейсы не рассматривал даже.
@Alexander_Gurov_RF4 ай бұрын
std::vector<bool> считается устаревшим и не рекомендуется к использованию, если что. Вместо него следует использовать std::bitset. Ну или вектор от чего то вроде enum class bool_t : uint8_t {False, True};
@SalatikInMyHeadАй бұрын
🤦🤦🤦 у тя фантазия разыгралась, все впорядке с vector<bool> 🤣В C++26 приссутствует и предпопсылок к deprecated НЕ ВИДНО!! 👍 удачи std bitset ресайзить 👋
@Alexander_Gurov_RFАй бұрын
@@SalatikInMyHead Оно не deprecated официально. Просто нежелательно к использованию из-за побочных эффектов. И обычно, массив битов используется для хранения флагов, и не нуждается в масштабировании. Вообще, если так посудить - то и с исключениями всё в порядке. Однако, в современном c++ их использование считается моветоном. Потому что они слишком дорогие в плане ресурсов. И в STL были добавлены альтернативы уже имеющимся утилитам, которые позволяют обходиться без исключений.
@SalatikInMyHeadАй бұрын
@@Alexander_Gurov_RF програма без побочных эфектов НЕВОЗМОЖНА, о каких эффектах речь идет? 😂😂👎С исключениями все впорядке как испольвались так и используются(в stl тоже), откуда ты инфу берешь хз 🤦
@Alexander_Gurov_RFАй бұрын
@@SalatikInMyHead Условно с ними всё в порядке. Однако, они считаются ресурсоёмкими, и с ними хуже читабельность (код более громоздкий). Именно по этой причине и появились в STL аналоги уже существующих утилит, которые не выбрасывает исключений, а вместо этого возвращают код ошибки. Например, конвертеры. Сам подход с их использованием считается нежелательным по современным нормам. Хотя они и существуют для совместимости. Старая добрая оптимизация возвращается. Техпроцессы достигли своего пика, производительность ядер больше не растёт, развитие идёт в сторону параллелизма. Плюс растёт популярность встраиваемых устройств и микроконтроллеров. И вот в связи с этим в языке множество нововведений.
@SalatikInMyHeadАй бұрын
@@Alexander_Gurov_RF програма нетолько ошибки хендлит, как ты ресурсоемкость получил🤯🤯🤔Юзай фичи поназначению и все будет ОК 👍👍без замеделений К какой теме тут исключения НЕЯСНО, у тя мания какаято 😂😂😂
@Alexander_Gurov_RF4 ай бұрын
В STL для всех размеров данных используется тип size_t. И просто стоит использовать его для указания размера, и не будет никаких проблем. Его размер всегда гарантированно равен размеру указателя. Зачем лепить всякие unsigned, и прочую отсебятину?..
@Alexander_Gurov_RF4 ай бұрын
Не согласен с идеей использовать auto повсюду. Да, есть случаи, когда это необходимо. В основном это лямбда-функции, range based for, auto &[x, y, ...] = ..., итераторы и прочие сложные типы. А в большинстве случаев этим лучше не злоупотреблять. А не инициализированные переменные - вполне нормальное явление, и является элементом оптимизации. Переменные не стоит инициализировать, если она потенциально может быть не использована (функция завершает работу раньше по результату проверки). Естественно, не инициализированными (то есть содержать мусор) могут быть только переменные, размещённые на стёке. Глобальные и все статические переменные размещаются в секции .bss, а все нормальные RTL её заполняют нулями.
@grinlex4 ай бұрын
легенда
@denissav10334 ай бұрын
Короче, вижу фигурные скобки -- это семантика списка инициализации. Такая семантика будет +/- общей для разных классов. Если фигурные скобки с одним значением -- просто список инициализации с одним значением. Вижу круглые скобки -- это семантика параметров конструктора. Смысл параметров будет разный для разных классов. Надо смотреть, что там заложил автор класса. Поэтому vector vec{10} // вектор длины 1 со значением 10 vector vec(10) // вектор длины 10 с мусором в качестве значений vector vec{10, 0} // вектор длины 2 со значениями 10 и 0 vector vec(10, 0) // вектор длины 10 со значениями 0
@DiIov4 ай бұрын
Пачему так мало просмотров? Это же шедевр! Хотя на моменте, когда автор приводит пример с auto и cast применительно к vector<bool>, и подгорело знатненько, но, видимо это было сделано для привлечения внимания - такая работа над вниманием аудитории вызывает бескоайнее восхищение)
@kunak11974 ай бұрын
Спасибо🖖, хорошее дополнение к лекциям Konstantin Vlаdimirov. Как же долго std::atomic добирались до float-pointing😲 Вместо lock_guard правильнее юзать scoped_lock даже для одного мьютекса (ну, чтоб не думалось). В C++20 появились защëлки, барьеры и семафоры👍 Доживëм ли мы когда-нить в std до мониторов синхронизации?🤔