Выложил лямбды. Я в этом году, как мне кажется, смог наконец-то придти к правильной структуре этой лекции, мотивировав через лямбды массу захватывающих вещей.
У меня там к сожалению получились несколько минут (!) непрерывного сообщения откровенной неправды, которую я только после лекции слазил проверить в стандарт. Но я не стал вырезать: я довольно честно так заблуждался много лет (насчет того есть ли в кложуре круглые скобки), позаблуждайтесь со мной в последний раз.
Но многое другое получилось хорошо.
https://youtu.be/j-UyAKux590
#cpp_postgraduate
У меня там к сожалению получились несколько минут (!) непрерывного сообщения откровенной неправды, которую я только после лекции слазил проверить в стандарт. Но я не стал вырезать: я довольно честно так заблуждался много лет (насчет того есть ли в кложуре круглые скобки), позаблуждайтесь со мной в последний раз.
Но многое другое получилось хорошо.
https://youtu.be/j-UyAKux590
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 13. Лямбды.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Центральная тема которую мы здесь обсуждаем это вызываемые объекты. Начиная от чудес std::invoke и далее к лямбда-выражениям, к кортежам и std::apply.…
Центральная тема которую мы здесь обсуждаем это вызываемые объекты. Начиная от чудес std::invoke и далее к лямбда-выражениям, к кортежам и std::apply.…
🔥33👍16
Первая часть лекции про диапазоны.
https://youtu.be/sfweY8osTEs
Первые минут сорок не отличаются да, наверное, и не могут отличаться от того что я обычно рассказываю про диапазоны. Но дальше становится интересно. Я сознательно ограничил себя в этом году в первой части очень простыми диапазонами: чем-то что не сложнее пары из итератора и ограничителя. Зато они у меня получились, как мне кажется, обстоятельно.
Ну и да в конце первой части я сорву покров мрака с расхождения между компиляторами в трактовке старшинства семантических процессов.
#cpp_postgraduate
https://youtu.be/sfweY8osTEs
Первые минут сорок не отличаются да, наверное, и не могут отличаться от того что я обычно рассказываю про диапазоны. Но дальше становится интересно. Я сознательно ограничил себя в этом году в первой части очень простыми диапазонами: чем-то что не сложнее пары из итератора и ограничителя. Зато они у меня получились, как мне кажется, обстоятельно.
Ну и да в конце первой части я сорву покров мрака с расхождения между компиляторами в трактовке старшинства семантических процессов.
#cpp_postgraduate
❤34❤🔥5💯4👍2🫡1
Итак, последняя в этом семестре лекция магистерского курса.
Мне кажется что наконец-то я рассказал диапазоны правильно. Поговорим о кешировании, pull model и её проблемах, константной итерируемости и многом другом. Также заглянем внутрь некоторых нетривиальных отображений.
https://youtu.be/CVMDB3c3too
#cpp_postgraduate
Мне кажется что наконец-то я рассказал диапазоны правильно. Поговорим о кешировании, pull model и её проблемах, константной итерируемости и многом другом. Также заглянем внутрь некоторых нетривиальных отображений.
https://youtu.be/CVMDB3c3too
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 14. Диапазоны, часть 2
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Вторая часть лекции про диапазоны сосредоточена вокруг pull model и того как работают более сложные -- фильтрующие, трансформирующие и тому подобные отображения.…
Вторая часть лекции про диапазоны сосредоточена вокруг pull model и того как работают более сложные -- фильтрующие, трансформирующие и тому подобные отображения.…
🔥41👍5👏3❤2❤🔥1
Выложил лекцию по полиморфным аллокаторам. Отмотаем плёнку и попробуем выйти из тупика и изобрести аллокаторы ещё раз. Что то в процессе получится, что-то нет...
https://youtu.be/QwuHX-VjhXI
#cpp_postgraduate
https://youtu.be/QwuHX-VjhXI
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 16. Полиморфные аллокаторы
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Лекция о полиморфных аллокаторах делает шаг назад. Мы снова начнём сначала, но на этот раз пойдём другим путём -- путём стирания типов и динамического…
Лекция о полиморфных аллокаторах делает шаг назад. Мы снова начнём сначала, но на этот раз пойдём другим путём -- путём стирания типов и динамического…
🔥47👏6👍2🫡1
Выложил лекцию по умным указателям. Я очень старался не растягивать её в этом году на две части т. к. для магистрантов там не слишком много новизны. Поэтому некоторые вещи я пробежал очень быстро. Но при этом я также постарался её реорганизовать во-первых в явном виде рассмотрев и описав альтернативы владения, и вот тут я времени не жалел так как это очень важно. А во-вторых я связал её с аллокаторами и добавил систематический разбор "Санкелевских" кейсов.
https://www.youtube.com/watch?v=OzqFXMDrrgk
#cpp_postgraduate
https://www.youtube.com/watch?v=OzqFXMDrrgk
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 17. Умные указатели.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Мы начнём с фундаментальной проблемы: проблемы владения. В современном C++ есть пять разумных альтернатив для её решения, и эта лекция посвящена разбору…
Мы начнём с фундаментальной проблемы: проблемы владения. В современном C++ есть пять разумных альтернатив для её решения, и эта лекция посвящена разбору…
🔥57👍12👏3❤2🙏2🐳2🕊1🌭1
Выложил лекцию по динамическому полиморфизму.
https://youtu.be/_Jn7MAZYL2M
Я долго ходил вокруг неё кругами и думал включать или нет в магистерский курс. В прошлом году попробовал прочитать не под запись, но тогда она скорее провалилась. Последний толчок был дан благодаря моему подписчику Нику Келбону, показавшему мне библитотеку AnyAny своего авторства: https://github.com/kelbon/AnyAny
Я посмотрел и я понял что теперь я могу что-то рассказывать.
#cpp_postgraduate
https://youtu.be/_Jn7MAZYL2M
Я долго ходил вокруг неё кругами и думал включать или нет в магистерский курс. В прошлом году попробовал прочитать не под запись, но тогда она скорее провалилась. Последний толчок был дан благодаря моему подписчику Нику Келбону, показавшему мне библитотеку AnyAny своего авторства: https://github.com/kelbon/AnyAny
Я посмотрел и я понял что теперь я могу что-то рассказывать.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 18. Динамический полиморфизм.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы поговорим о неудобной и в чём-то даже неуютной теме -- динамическом полиморфизме в C++. Мы рассмотрим несколько альтернатив, включая…
На этой лекции мы поговорим о неудобной и в чём-то даже неуютной теме -- динамическом полиморфизме в C++. Мы рассмотрим несколько альтернатив, включая…
🔥57👍8🤔1🎄1
Выложил первую часть многопоточности.
На этой лекции мы выходим на коду нашего курса: многопоточность во всех её проявлениях. Начнём мы с грунтования фундамента и разбора простых и фундаментальных вещей. Что такое область памяти? Что такое поток? Что такое гонка? Зачем нужен volatile? Что такое безопасность относительно многопоточности? Мы ответим на все эти вопросы. Также мы разберём основные проблемы проектирования для многопоточной безопасности: API races и deadlocks.
Сейчас идёт премьера а после её окончания будет доступно видео с разметкой по эпизодам.
https://youtu.be/xTpAJWe7ZD4
#cpp_postgraduate
На этой лекции мы выходим на коду нашего курса: многопоточность во всех её проявлениях. Начнём мы с грунтования фундамента и разбора простых и фундаментальных вещей. Что такое область памяти? Что такое поток? Что такое гонка? Зачем нужен volatile? Что такое безопасность относительно многопоточности? Мы ответим на все эти вопросы. Также мы разберём основные проблемы проектирования для многопоточной безопасности: API races и deadlocks.
Сейчас идёт премьера а после её окончания будет доступно видео с разметкой по эпизодам.
https://youtu.be/xTpAJWe7ZD4
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 19. Многопоточность, часть 1.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы выходим на коду нашего курса: многопоточность во всех её проявлениях. Начнём мы с грунтования фундамента и разбора простых и фундаментальных…
На этой лекции мы выходим на коду нашего курса: многопоточность во всех её проявлениях. Начнём мы с грунтования фундамента и разбора простых и фундаментальных…
🔥69👍14❤🔥3👏2🫡2👾2🥰1👨💻1
Выложил вторую часть многопоточности.
В ней мы должны познакомиться со всем находящимся в наших руках классическим инструментарием (пока не залезая внутрь него). В первую очередь мы рассмотрим одноразовую инициализацию и разберём известный антипаттерн double-checked lock. Далее мы перейдём к идее условных переменных и введём понятия uniuque_lock, нотификаций и внезапных пробуждений. Потом нас ждёт много попыток понять что же происходит в нашем многопоточном приложении. Ну и под конец мы зароемся глубже в разделяемые и прочие виды блокировок.
https://youtu.be/vVRNJjf1MCE
#cpp_postgraduate
В ней мы должны познакомиться со всем находящимся в наших руках классическим инструментарием (пока не залезая внутрь него). В первую очередь мы рассмотрим одноразовую инициализацию и разберём известный антипаттерн double-checked lock. Далее мы перейдём к идее условных переменных и введём понятия uniuque_lock, нотификаций и внезапных пробуждений. Потом нас ждёт много попыток понять что же происходит в нашем многопоточном приложении. Ну и под конец мы зароемся глубже в разделяемые и прочие виды блокировок.
https://youtu.be/vVRNJjf1MCE
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 19. Многопоточность, часть 2.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Продолжая многопоточность мы теперь должны познакомиться со всем находящимся в наших руках инструментарием. В первую очередь мы рассмотрим одноразовую…
Продолжая многопоточность мы теперь должны познакомиться со всем находящимся в наших руках инструментарием. В первую очередь мы рассмотрим одноразовую…
🔥46👍12💅3❤2👎1
Выложил очередную лекцию магистерского курса, посвящённую многопоточным очередям. Это своего рода новация, в прошлом курсе этот материал читался иначе и не в полном объёме. Этой лекцией я искренне горжусь так как в ней есть и драматургия и композиционная согласованность: одно следует из другого, а концовка возвращает к началу.
https://youtu.be/CMnRgnoWzmA
Мы начнём с разговора о ментальной модели мьютекса. Далее мы попробуем собрать из имеющегося инструментария очередь, убедимся что у нас остались проблемы, решим их и соберём ещё одну. Далее мы сделаем важнейший шаг перейдя от очереди данных к очереди упакованных задач. Для этого нам придётся наладить каналы коммуникации с потоками, познакомиться с маршалингом исключений и рассмотреть несколько новых концепций по дороге. Но в итоге мы придём к цели. Или почти придём, следите за руками.
#cpp_postgraduate
https://youtu.be/CMnRgnoWzmA
Мы начнём с разговора о ментальной модели мьютекса. Далее мы попробуем собрать из имеющегося инструментария очередь, убедимся что у нас остались проблемы, решим их и соберём ещё одну. Далее мы сделаем важнейший шаг перейдя от очереди данных к очереди упакованных задач. Для этого нам придётся наладить каналы коммуникации с потоками, познакомиться с маршалингом исключений и рассмотреть несколько новых концепций по дороге. Но в итоге мы придём к цели. Или почти придём, следите за руками.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 20. Очереди.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На прошлой лекции мы рассмотрели большую часть нашего инструментария. Давайте попробуем собрать из него очередь, убедиться что у нас остались проблемы…
На прошлой лекции мы рассмотрели большую часть нашего инструментария. Давайте попробуем собрать из него очередь, убедиться что у нас остались проблемы…
👍37🔥31❤6
Выложил очередную лекцию магистерского курса — первую в длинной серии про атомики. Сейчас начинается премьера, а через полтора часа лекция будет доступна для произвольного просмотра по разметке.
https://youtu.be/JRUbzoVfkkw
На этой лекции мы начнём с обстоятельной работы над ошибками. Надеюсь мне удалось сделать её и увлекательной и поучительной. Ну а дальше всё по обычной схеме. Введение в атомики это классика жанра и что-то там менять только портить. В этом году я заново снял замеры и их можно сравнить с 2019-м, они несколько поменялись (хотя в общем разница между Intel Gen8 и Intel Gen11 не фатальная). Закончим мы разбором thread local переменных.
#cpp_postgraduate
https://youtu.be/JRUbzoVfkkw
На этой лекции мы начнём с обстоятельной работы над ошибками. Надеюсь мне удалось сделать её и увлекательной и поучительной. Ну а дальше всё по обычной схеме. Введение в атомики это классика жанра и что-то там менять только портить. В этом году я заново снял замеры и их можно сравнить с 2019-м, они несколько поменялись (хотя в общем разница между Intel Gen8 и Intel Gen11 не фатальная). Закончим мы разбором thread local переменных.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 21. Атомики, часть 1.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
Эту лекцию начинает долгая работа над ошибками. Мы ещё раз вернёмся к обычным очередям и разберём ошибки и проблемы проектирования в них, включая очень…
Эту лекцию начинает долгая работа над ошибками. Мы ещё раз вернёмся к обычным очередям и разберём ошибки и проблемы проектирования в них, включая очень…
🔥60👏5🦄5❤2👍2👌1
Выложил вторую лекцию по атомикам. Искренне ей горжусь так как впервые мне удалось, если можно так выразится, правильно расставить телегу и лошадь. Ранее я методически ориентировался на Саттера с его juggling razor blades, но, как показала практика, Саттер уделяет много внимания более редкой и экзотической проблеме ABA, упуская более распространённую и насущную проблему гонки вокруг удаления в lock-free программах (reclamation problem).
https://youtu.be/hb_kREmFnX0
Начнём мы с того, что погрузимся в неприятные части атомиков. Начав с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев способ их решения через формальные методы), мы пойдём к более сложным и специфичным проблемам. Первая такая проблема это и будет тот самый reclamaition -- ранний отзыв указателя. Вторая проблема это ABA. Мы поговорим о том какими способами (как аппаратными так и на уровне языка) мы решаем такие проблемы. Закончим мы тем, что потрогаем вопросы переупорядочения.
В первые пять минут — ещё раз объяснение про иерархию свободы от блокировок. Никогда не устаю такое объяснять.
#cpp_postgraduate
https://youtu.be/hb_kREmFnX0
Начнём мы с того, что погрузимся в неприятные части атомиков. Начав с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев способ их решения через формальные методы), мы пойдём к более сложным и специфичным проблемам. Первая такая проблема это и будет тот самый reclamaition -- ранний отзыв указателя. Вторая проблема это ABA. Мы поговорим о том какими способами (как аппаратными так и на уровне языка) мы решаем такие проблемы. Закончим мы тем, что потрогаем вопросы переупорядочения.
В первые пять минут — ещё раз объяснение про иерархию свободы от блокировок. Никогда не устаю такое объяснять.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 21. Атомики, часть 2.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы погрузимся в неприятные части атомиков: начав с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев…
На этой лекции мы погрузимся в неприятные части атомиков: начав с рассмотрения уже знакомых нам проблем проектирования, таких как API races (а также посмотрев…
❤27🔥24👍9😘2❤🔥1
Выложил финальную лекцию по атомикам. На этой лекции мы завершаем рассмотрение этой огромной темы. Наконец-то мы напишем bounded lock-free queue и снимем замеры. Но до этого нам предстоит разобраться с моделями памяти и теорией относительности. Лекция заканчивается большим списком литературы.
https://youtu.be/Y1q_Z2T2UcE
#cpp_postgraduate
https://youtu.be/Y1q_Z2T2UcE
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 21. Атомики, часть 3.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы завершаем рассмотрение атомиков. Наконец-то мы напишем bounded lock-free queue и снимем замеры. Но до этого нам предстоит разобраться…
На этой лекции мы завершаем рассмотрение атомиков. Наконец-то мы напишем bounded lock-free queue и снимем замеры. Но до этого нам предстоит разобраться…
🔥43👍8❤4🏆2
Выложил новую лекцию по C++. На этот раз она посвящена параллелизму.
https://youtu.be/nvjQTt2RM8A
После того как мы выбрались из атомиков, она гораздо более расслабленная. Начнём мы с рассмотрения параллелизма через политики стандартных алгоритмов. Далее исследуем варианты написания собственных параллельных алгоритмов через std::async. Далее нас ждут GPGPU и основы SYCL. В конце придёт время для того чтобы заглянуть в будущее и посмотреть что встретит нас в 2026-м году и далее.
#cpp_postgraduate
https://youtu.be/nvjQTt2RM8A
После того как мы выбрались из атомиков, она гораздо более расслабленная. Начнём мы с рассмотрения параллелизма через политики стандартных алгоритмов. Далее исследуем варианты написания собственных параллельных алгоритмов через std::async. Далее нас ждут GPGPU и основы SYCL. В конце придёт время для того чтобы заглянуть в будущее и посмотреть что встретит нас в 2026-м году и далее.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 22. Параллелизм.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы поговорим о паралеллизме. В первую очередь мы рассмотрим параллелизм через политики стандартных алгоритмов, далее варианты написания…
На этой лекции мы поговорим о паралеллизме. В первую очередь мы рассмотрим параллелизм через политики стандартных алгоритмов, далее варианты написания…
🔥51👍6
Это закреплённый пост, начните с его прочтения.
Прецедентные правила канала (просто почитайте и соотнесите с ними то что вы хотите написать): https://t.me/cpp_lects_rus/169
В качестве технического дополнения: пожалуйста не оставляйте в группе канала постов, не прикреплённых к веткам обсуждения.
Для сбора запросов на новые ветки используйте direct messages на канале, они бесплатны. Информация как их найти тут: https://t.me/cpp_lects_rus/287
На канале введена система тегов для навигации. Ниже теги изложены в алфавитном порядке.
#author_event -- встречи с читателями
#books -- обзоры чужих книг
#c_graduate -- изложение на C для первого курса
#conference -- что-то касающееся конференций в которых я участвую
#combinatorics -- что-то про комбинаторику
#compilers -- алгоритмы оптимизирующей компиляции
#computability -- что-то про вычислимость
#cpp_graduate -- изложение на C++ для второго курса
#cpp_postgraduate -- изложение на C++ для магистратуры
#interview -- интервью со мной в разных местах
#graphics -- что-то про GPU или GPGPU
#happynewyear -- традиционное подведение итогов года
#knuth -- вольные переводы Дональда Кнута
#llm -- общение с микроволновками
#official -- под этим тегом я говорю от своего лица, обычно какие-то технические вещи и объявления
#publications -- публикации в научных журналах и не только
#riscv — нечто про открытую и расширяемую архитектуру RISC-V
#talks -- обзоры чужих докладов
#toolchain -- что-то про системы компиляции, а также ассемблеры линкеры и всё такое
#torrent -- публичная выкладка пакетами
#questions -- предложения что-то обсудить
Размечены все существующие посты. Если найдёте ошибки в разметке сообщайте.
Ютуб-канал с моими лекциями: https://www.youtube.com/@tilir
Рутуб-канал с ними же: https://rutube.ru/u/cpplectsrus/
Курс по языку C: https://youtube.com/playlist?list=PL3BR09unfgchRxdDws74aY4mlSk9eYGEs
Базовый курс по C++: https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
Магистерский курс по C++: https://www.youtube.com/playlist?list=PL3BR09unfgcgf7R88ZQRQqWOdLy4pRW2h
Оптимизирующие компиляторы: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1
#official
Прецедентные правила канала (просто почитайте и соотнесите с ними то что вы хотите написать): https://t.me/cpp_lects_rus/169
В качестве технического дополнения: пожалуйста не оставляйте в группе канала постов, не прикреплённых к веткам обсуждения.
Для сбора запросов на новые ветки используйте direct messages на канале, они бесплатны. Информация как их найти тут: https://t.me/cpp_lects_rus/287
На канале введена система тегов для навигации. Ниже теги изложены в алфавитном порядке.
#author_event -- встречи с читателями
#books -- обзоры чужих книг
#c_graduate -- изложение на C для первого курса
#conference -- что-то касающееся конференций в которых я участвую
#combinatorics -- что-то про комбинаторику
#compilers -- алгоритмы оптимизирующей компиляции
#computability -- что-то про вычислимость
#cpp_graduate -- изложение на C++ для второго курса
#cpp_postgraduate -- изложение на C++ для магистратуры
#interview -- интервью со мной в разных местах
#graphics -- что-то про GPU или GPGPU
#happynewyear -- традиционное подведение итогов года
#knuth -- вольные переводы Дональда Кнута
#llm -- общение с микроволновками
#official -- под этим тегом я говорю от своего лица, обычно какие-то технические вещи и объявления
#publications -- публикации в научных журналах и не только
#riscv — нечто про открытую и расширяемую архитектуру RISC-V
#talks -- обзоры чужих докладов
#toolchain -- что-то про системы компиляции, а также ассемблеры линкеры и всё такое
#torrent -- публичная выкладка пакетами
#questions -- предложения что-то обсудить
Размечены все существующие посты. Если найдёте ошибки в разметке сообщайте.
Ютуб-канал с моими лекциями: https://www.youtube.com/@tilir
Рутуб-канал с ними же: https://rutube.ru/u/cpplectsrus/
Курс по языку C: https://youtube.com/playlist?list=PL3BR09unfgchRxdDws74aY4mlSk9eYGEs
Базовый курс по C++: https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
Магистерский курс по C++: https://www.youtube.com/playlist?list=PL3BR09unfgcgf7R88ZQRQqWOdLy4pRW2h
Оптимизирующие компиляторы: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1
#official
Telegram
C++ and other lectures
В эфире рубрика "стёртые комментарии моих забаненных подписчиков".
Преамбула. На моём ютуб-канале 17+ тысяч подписчиков и это очень много. Я с некоторым опасением смотрел на цифры уже когда нас стало 10к+, потому что ясное дело, что для любого большого канала…
Преамбула. На моём ютуб-канале 17+ тысяч подписчиков и это очень много. Я с некоторым опасением смотрел на цифры уже когда нас стало 10к+, потому что ясное дело, что для любого большого канала…
🔥107👍34❤6❤🔥6
Выложил первую часть последней лекции магистерского курса — мы начинаем сопрограммы.
https://youtu.be/mDajl0pIUjQ
Сначала мы потратим немного времени на обзор разновидностей сопрограмм, потом исследуем их основные части и дальше нас ждёт много интересных упражнений: собственный генератор, исследование объектов ожидания и разбор тонких и сложных проблем.
#cpp_postgraduate
https://youtu.be/mDajl0pIUjQ
Сначала мы потратим немного времени на обзор разновидностей сопрограмм, потом исследуем их основные части и дальше нас ждёт много интересных упражнений: собственный генератор, исследование объектов ожидания и разбор тонких и сложных проблем.
#cpp_postgraduate
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 23. Сопрограммы, часть 1.
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы поговорим о сопрограммах. Сначала мы потратим немного времени на обзор разновидностей сопрограмм, потом исследуем их основные части и…
На этой лекции мы поговорим о сопрограммах. Сначала мы потратим немного времени на обзор разновидностей сопрограмм, потом исследуем их основные части и…
🔥46👍17❤5🦄1
Выложил последнюю лекцию курса.
Она завершает изложение корутин и в отличие от прошлой существенно уходит от изложения прошлого года. Я подключаю многопоточку и она помогает мне раскрыть главную тайну корутин.
https://youtu.be/WZhxMwKaXmw
Это завершает мой магистерский курс и я сам не верю что мне удалось его записать и выложить. У меня бы это не получилось без Юлия Тарасова https://t.me/botan_razdolb который на всех этих лекциях был оператором и звукорежиссером (и немного продюсером).
Базовый курс 2021-22 и магистерский курс 2022-23 вместе это главное что есть на моём канале.
Базовый:
youtube: https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
rutube: https://rutube.ru/plst/119828/
Магистерский:
youtube: https://www.youtube.com/playlist?list=PL3BR09unfgcgf7R88ZQRQqWOdLy4pRW2h
Дальнейшие творческие планы -- это записать наконец-то базовый курс по языку C и ассемблеру. Также хочется записать курс по вычислимости. И может быть что-то по бэкендам компиляторов.
Летом я скорее всего также запишу и выложу несколько обещанных лекций по системам сборки (я обещал на 1к в телеграме и приближается 10к на ютубе).
Ну и ещё бы перезаписать тулчейн с понями, так как слайдов явно добавилось и пони тоже.
В общем как мне сказала сейчас ChatGPT когда я попросил её сделать последнюю фразу этого поста: "пусть каждый ваш день будет наполнен сияющими моментами и вдохновением, а ваши мечты сбываются с легкостью. Идите вперед и покоряйте мир своим уникальным блеском".
#cpp_postgraduate #official
Она завершает изложение корутин и в отличие от прошлой существенно уходит от изложения прошлого года. Я подключаю многопоточку и она помогает мне раскрыть главную тайну корутин.
https://youtu.be/WZhxMwKaXmw
Это завершает мой магистерский курс и я сам не верю что мне удалось его записать и выложить. У меня бы это не получилось без Юлия Тарасова https://t.me/botan_razdolb который на всех этих лекциях был оператором и звукорежиссером (и немного продюсером).
Базовый курс 2021-22 и магистерский курс 2022-23 вместе это главное что есть на моём канале.
Базовый:
youtube: https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
rutube: https://rutube.ru/plst/119828/
Магистерский:
youtube: https://www.youtube.com/playlist?list=PL3BR09unfgcgf7R88ZQRQqWOdLy4pRW2h
Дальнейшие творческие планы -- это записать наконец-то базовый курс по языку C и ассемблеру. Также хочется записать курс по вычислимости. И может быть что-то по бэкендам компиляторов.
Летом я скорее всего также запишу и выложу несколько обещанных лекций по системам сборки (я обещал на 1к в телеграме и приближается 10к на ютубе).
Ну и ещё бы перезаписать тулчейн с понями, так как слайдов явно добавилось и пони тоже.
В общем как мне сказала сейчас ChatGPT когда я попросил её сделать последнюю фразу этого поста: "пусть каждый ваш день будет наполнен сияющими моментами и вдохновением, а ваши мечты сбываются с легкостью. Идите вперед и покоряйте мир своим уникальным блеском".
#cpp_postgraduate #official
YouTube
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 23. Сопрограммы, часть 2
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы закончим разговор о сопрограммах. В итоге всё срастётся -- и сопрограммы и многопоточность и даже асинхронность.
Лектор: Константин…
На этой лекции мы закончим разговор о сопрограммах. В итоге всё срастётся -- и сопрограммы и многопоточность и даже асинхронность.
Лектор: Константин…
❤133👏24👍14🔥8❤🔥6🍓2😁1👨💻1
Выложили по ссылке моё выступление на C++Russia 2023. Выступление было на конференции отлично принято коллегами и набрало массу лестных отзывов и высоких оценок. Теперь можно представить его более широкой аудитории.
https://www.youtube.com/watch?v=lc3UkIZ4zOY&t=110s
В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if.
Но когда мы говорим о семантике, мы сталкиваемся с необходимостью для компилятора что-то сделать или что-то выяснить: разрешить имя, инстанцировать шаблон, вывести тип, вычислить константное выражение. Можно сказать что в каждый такой момент мы стартуем некий процесс, развивающийся по своим правилам. Этот доклад посвящен описанию взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка.
#conference #cpp_postgraduate #llm
https://www.youtube.com/watch?v=lc3UkIZ4zOY&t=110s
В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if.
Но когда мы говорим о семантике, мы сталкиваемся с необходимостью для компилятора что-то сделать или что-то выяснить: разрешить имя, инстанцировать шаблон, вывести тип, вычислить константное выражение. Можно сказать что в каждый такой момент мы стартуем некий процесс, развивающийся по своим правилам. Этот доклад посвящен описанию взаимодействующих семантических процессов в языке, как с точки зрения внутренностей компилятора, так и с точки зрения стандарта языка.
#conference #cpp_postgraduate #llm
YouTube
Константин Владимиров — Семантические процессы в C++
Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
— —
В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if.
Но когда…
— —
В языке C++ есть синтаксис и семантика. Когда мы говорим о синтаксисе, мы говорим о контекстно-независимых конструкциях, которые просто что-то означают. Например, if — это всегда if.
Но когда…
🔥98❤9👍9👏3
Пятница, вечер, самое время для свежепридуманного этюда по C++. Придумал утром, сегодня опробовал на коллегах и остался доволен.
https://godbolt.org/z/8EaEbPz9x — это не работает
https://godbolt.org/z/6b3977Pac — то же, но без инстанцирования структуры отлично работает
Вам нужно обосновать со ссылкой на стандарт в чём причина. И предложить некую починку неработающего варианта. Вариантов починки, кстати, заведомо больше одного.
Увы, призов, кроме зрительских симпатий, не обещаю.
#questions #cpp_postgraduate
https://godbolt.org/z/8EaEbPz9x — это не работает
https://godbolt.org/z/6b3977Pac — то же, но без инстанцирования структуры отлично работает
Вам нужно обосновать со ссылкой на стандарт в чём причина. И предложить некую починку неработающего варианта. Вариантов починки, кстати, заведомо больше одного.
Увы, призов, кроме зрительских симпатий, не обещаю.
#questions #cpp_postgraduate
👍36🤯19❤10
Всем привет. Очередная лекция по компиляторам завтра в 9 утра, а сегодня вечер пятницы и небольшой брейн-тизер по C++.
https://godbolt.org/z/qfsEvxh4E
Громадное спасибо за него Владиславу Белову https://t.me/you_are_RTshnik наткнувшемуся на эту красоту во время выполнения одного из моих заданий.
Задача довольно обычная — объяснить в чём разница с детальными ссылками на C++23. Призов не будет, кроме зрительских симпатий.
P. S. книгу обещают перепечатать к 15 ноября.
UPD: Уважаемый подписчик Артём Колпаков @ddvamp развил и усилил пример до https://godbolt.org/z/ab31ah199
#questions #cpp_postgraduate
template<typename T = void>
int foo(int x) { return 1; }
int foo(...) { return 2; }
template<typename T = void>
int bar() { return 1; }
int bar(...) { return 2; }
int main() {
std::cout << foo(2) << std::endl; // ?
std::cout << bar() << std::endl; // ???
}
https://godbolt.org/z/qfsEvxh4E
Громадное спасибо за него Владиславу Белову https://t.me/you_are_RTshnik наткнувшемуся на эту красоту во время выполнения одного из моих заданий.
Задача довольно обычная — объяснить в чём разница с детальными ссылками на C++23. Призов не будет, кроме зрительских симпатий.
P. S. книгу обещают перепечатать к 15 ноября.
UPD: Уважаемый подписчик Артём Колпаков @ddvamp развил и усилил пример до https://godbolt.org/z/ab31ah199
#questions #cpp_postgraduate
godbolt.org
Compiler Explorer - C++
// many thanks to Vlad Belov https://t.me/you_are_RTshnik
// for noticing this beauty
template<typename T = void>
int foo(int x) { return 1; }
int foo(...) { return 2; }
template<typename T = void>
int bar() { return 1; }
int bar(...) { return 2; }
…
// for noticing this beauty
template<typename T = void>
int foo(int x) { return 1; }
int foo(...) { return 2; }
template<typename T = void>
int bar() { return 1; }
int bar(...) { return 2; }
…
🔥50🤪10👍8🤔2🥴1🌚1🫡1💘1
Немного заслуженных поздравлений.
У меня в магистерском курсе есть задания повышенной сложности (каждый год разные). Они построены так: есть некий замороченный код, где один компилятор работает, а другой нет и надо понять и обосновать стандартом кто прав. Я в некоторые пятницы такие брейнтизеры иногда скидываю в этот канал.
И я к таким заданиям обычно добавляю: поскольку очевидно кто-то не прав, вы получите высшую оценку за экзамен автоматом, т.е. безо всякого экзамена, если вы сделаете коммит в clang или gcc (смотря кто не прав) и его примут.
Много лет этой опцией никому не удавалось воспользовался. Люди пытались, но пройти ревью и влиться не могли. Но в этом году у нас есть первый победитель.
https://github.com/llvm/llvm-project/pull/118003
Мой студент Владислав Белов @sick_hoof со второго раза влил фикс в кланг. Первый раз его влили, но там в расширенных тестах упал assert и его откатили. Тот assert оказался ошибочным и в этом патче был торжественно удалён.
Ниже некоторые тесты, которые Владислав написал на свой коммит.
Вот тут он ожидает ошибку:
А вот тут он ошибки не ожидает, это должно работать:
Я полагаю, достойные студенты растут. Боевые. Самому иногда страшно становится.
#cpp_postgraduate
У меня в магистерском курсе есть задания повышенной сложности (каждый год разные). Они построены так: есть некий замороченный код, где один компилятор работает, а другой нет и надо понять и обосновать стандартом кто прав. Я в некоторые пятницы такие брейнтизеры иногда скидываю в этот канал.
И я к таким заданиям обычно добавляю: поскольку очевидно кто-то не прав, вы получите высшую оценку за экзамен автоматом, т.е. безо всякого экзамена, если вы сделаете коммит в clang или gcc (смотря кто не прав) и его примут.
Много лет этой опцией никому не удавалось воспользовался. Люди пытались, но пройти ревью и влиться не могли. Но в этом году у нас есть первый победитель.
https://github.com/llvm/llvm-project/pull/118003
Мой студент Владислав Белов @sick_hoof со второго раза влил фикс в кланг. Первый раз его влили, но там в расширенных тестах упал assert и его откатили. Тот assert оказался ошибочным и в этом патче был торжественно удалён.
Ниже некоторые тесты, которые Владислав написал на свой коммит.
Вот тут он ожидает ошибку:
template<typename T> struct A {
typedef int M;
struct B {
typedef void M;
struct C;
struct D;
};
};
template<typename T> struct A<T>::B::D : A<T*> {
M m;
// expected-error@-1 {{field has incomplete type 'M' (aka 'void'}}
};
А вот тут он ошибки не ожидает, это должно работать:
template<typename T> struct G {
struct B {
typedef int M;
struct C {
typedef void M;
struct D;
};
};
};
template<typename T> struct G<T>::B::C::D : B {
M m;
};
Я полагаю, достойные студенты растут. Боевые. Самому иногда страшно становится.
#cpp_postgraduate
GitHub
Reapply "[clang] Fix name lookup for dependent bases" by vbe-sc · Pull Request #118003 · llvm/llvm-project
Unlike the previous version (#114978), this patch also removes an unnecessary assert that causes Clang to crash when compiling such tests. (clang/lib/AST/DeclCXX.cpp)
https://lab.llvm.org/buildbot/...
https://lab.llvm.org/buildbot/...
🔥341🎉106👏29👍25❤10⚡4😁3🏆3