Базовый курс C++ (MIPT, ILab). Lecture 28. Концепты и напутственные слова.

preview_player
Показать описание
Лекции в бакалавриате МФТИ по C++ на русском языке.

На этой лекции мы завершаем наш курс кратким разговором о сравнительно продвинутых вещах: концептах и диапазонах.

Лектор: Константин Владимиров
Дата лекции: 02 мая 2022 года
Съёмка: Андрей Малинин.
Звук: Дмитрий Рябцев.

Следующая лекция: нет, это последняя лекция курса

Timeline:
00:00 Повторяем простые констрейнты
09:18 Решение их проблем: requires expression
16:45 Концепты
26:08 Отношение subsumes
34:54 Диапазон и концепт диапазона
45:05 Концепт отображения
56:55 Некоторые проблемы диапазонов
01:02:10 Литература и прощание

Errata:
* тут пока пусто
Рекомендации по теме
Комментарии
Автор

Я человек простой: Увидел ролик Константина Владимирова, автоматически поставил лайк. Цикл лекций шикарен❤ Пошел штурмовать магистерский курс🙂

qupqswk
Автор

Ну что могу сказать... Завидую белой завистью тем счастливчикам, которым повезло заниматься у вас :)
P.S. Единственная проблема - после просмотра ваших видео бэклог не уменьшается, а растет 😁

DanielPinchuk
Автор

Невероятный курс! Огромное спасибо и низкий поклон за ваш безмерный труд!

qhogqbq
Автор

Да, знакомство с С++ только начинается :)
Благодарю за курс, для меня он стал открытием года.
Постараюсь получше проработать полученные знания и пойду смотреть Магистерский курс, а попутно лекции про тулчейн, стандарты...
Всего вам наилучшего, Константин. Всех благ.

TheFX
Автор

спасибо вам большое за ваши труды. курс был просто великолепен!

sigasigasiga
Автор

Читал книгу когда-то API Design for C++ автора Martin Reddy; мне кажется интересная тема для углубленных занятий -- один из скилов который мне пришлось прокачивать уже после школы. Особенно когда понял понятие "семантика" -- это я вообще удивляюсь как я работал 3 года до того как его прочувствовал. Один чел 80го уровня на работе анализировал что дозволено сделать исходя из того, что обещает API и получались такие патологически-неинтуитивные последствия, примерно как в вашем видео где компилятор творит беспредел когда чует UB.

XuryFromCanada
Автор

Что значит последнее???? на когож вы нас ЛУЧШИЙ

sfjxpsk
Автор

Спасибо большое за курс. Как всегда, когда заканчивается что-то хорошее, появляется ощущение грусти и неизменный вопрос "Что дальше?". Константин, подскажите, пожалуйста, нам, зрителям ваших лекций на ютубе, чего жать дальше?

yakryt
Автор

46:30 Задам возможно глупый вопрос: а разве мы можем менять содержимое строки через string_view? Если на cppreference посмотреть методы basic_string_view, то begin и end возвращают const_iterator, operator[] и at возвращают const_reference, data возвращает const_pointer. Или я что-то упускаю? Разве что на ум приходит хакерство типа const_cast.

Robinzon__Kruzo
Автор

Ваш концепт weakly equality comparable избыточен же, ведь если есть == то начиная с С++20 есть и != и с аргументами в обратном порядке и т.д.. А если ведёт себя не ожидаемо, то уб(опять же по стандарту)
Ну и да, это же один requires с кучей внутренних "чего то", не нужно ли его разделить на несколько отдельных requires чтобы действительно компилятор мог вычислять частичный порядок между концептами.
Типа как с лямбдами
[] { return 0; } и [] { return 0; } - это разные типы, также и requires разные requires (T va U b) { a == b} requires (T va U b) { a == b}

niklkelbon
Автор

Зачем на 64 слайде слово bool между > и requires?

viacheslavbarkov
Автор

Ну и да, ренжи нужны в стандарте т.к. это некая концепция языка, как продолжение итераторов и прочего. Ну и их сильно улучшили внося в стандарт(до сих пор улучшают бекпортами...). Много чего хорошего не хватает в стандартной библиотеке. Это же даже не требует поддержки ОС и всё такое, просто языковые вещи, шаблончики

niklkelbon