Можно посмотреть лекции МФТИ от Константина Владимирова. Это человек, который работал в Intel, занимался поддержкой шейдеров в графическом драйвере.
Вообще эти лекции - полный курс по C++, в котором рассматриваются практически все темы по программированию на этом языке. Лектора хорошо слышно, слайды хорошо видны и читаемы.
Кстати, про атомарность у него получилось целых три часовых занятия. (https://www.youtube.com/watch?v=w8tTQvGbP1A&list=PL3BR09unfgcgJPQZKaacwzGmcXMtEA-19&index=22)
Есть несколько курсов, от новичков до профессионалов.
Базовый курс C++ (MIPT, ILab)
https://www.youtube.com/playlist?list=PL3BR09unfgciJ1_K_E914nohpiOiHnpsK
Содержание:
- Лекция 1. Чем пахнет C++
- Лекция 2. Указатели и ссылки
- Лекция 3. Имена и сущности
- Лекция 4. Инициализация и копирование
- Лекция 5. RAII и перемещение
- Лекция 6. Приведение типов
- Лекция 7. Перегрузка операторов
- Лекция 8. Наследование и полиморфизм
- Лекция 9. Множественное наследование
- Лекция 10. Языки и грамматики
- Лекция 11. Исключения
- Лекция 12. Безопасность исключений
- Лекция 13. Проектирование
- Лекция 14 (доп). OpenGL и Vulkan
- Лекция 15. Вычисления на GPU
- Лекция 16. Специализация и инстанцирование.
- Лекция 17. Вывод типов и свёртка ссылок.
- Лекция 18. Определители типов и SFINAE
- Лекция 19. Вариабельные шаблоны
- Лекция 20. Итераторы
- Лекция 21. LLVM, часть 1
- Лекция 22. LLVM, часть 2
- Лекция 23. Последовательные контейнеры
- Лекция 24. Ассоциативные контейнеры
- Лекция 25. Алгоритмы и функторы
- Лекция 26. Метапрограммирование
- Лекция 27. Constexpr функции
- Лекция 28. Концепты и напутственные слова
Магистерский курс C++ (МФТИ, 2022-2023)
https://www.youtube.com/playlist?list=PL3BR09unfgcgf7R88ZQRQqWOdLy4pRW2h
Содержание
- Лекция 1. Строки.
- Лекция 2. Шаблоны функций.
- Лекция 3. Шаблоны классов и частичная специализация.
- Лекция 4. Разрешение имён в шаблонах и One Definition Rule.
- Лекция 5. Модули в C++.
- Лекция 6. SFINAE.
- Лекция 7. Классическое метапрограммирование.
- Лекция 8. Константные выражения.
- Лекция 9. Волшебство времени компиляции.
- Лекция 10. Концепты.
- Лекция 11. Вывод типов.
- Лекция 12. Вариабельные шаблоны.
- Лекция 13. Лямбды.
- Лекция 14. Диапазоны, часть 1.
- Лекция 14. Диапазоны, часть 2
- Лекция 15. Аллокаторы
- Лекция 16. Полиморфные аллокаторы
- Лекция 17. Умные указатели.
- Лекция 18. Динамический полиморфизм.
- Лекция 19. Многопоточность, часть 1.
- Лекция 19. Многопоточность, часть 2.
Язык C++. Лекции МФТИ на русском языке
https://www.youtube.com/playlist?list=PL3BR09unfgcgJPQZKaacwzGmcXMtEA-19
Содержание
- Лекция 1. Строки - Strings
- Лекция 2. Шаблоны функций - Function templates
- Лекция 3. Шаблоны классов - Class templates, part 1
- Лекция 3. Шаблоны классов - Class templates, part 2
- Лекция 4. Исключения - Exceptions, part 1
- Лекция 4. Исключения - Exceptions, part 2
- Лекция 5. Вывод типов - Type deduction
- Лекция 6. Ссылки на Rvalue - Rvalue references, part 1
- Лекция 6. Ссылки на Rvalue - Rvalue references, part 2
- Лекция 7. Вариативные шаблоны (переменное число аргументов) - Variadic templates
- Лекция 8. Лямбды - Lambdas, part 1
- Лекция 8. Лямбды - Lambdas, part 2
- Лекция 9. Умные указатели - Smart pointers, part 1
- Лекция 9. Умные указатели - Smart pointers, part 2
- Лекция 9a. Монады - Monads
- Лекция 10. Крутины - Coroutines, part 1
- Лекция 10. Крутины - Coroutines, part 2
- Лекция 11. Асинхронное программирование - Asynchronous programming, part 1
- Лекция 11. Асинхронное программирование - Asynchronous programming, part 2
- Лекция 12. Параллелизм - Concurrency, part 1
- Лекция 12. Параллелизм - Concurrency, part 2
- Лекция 13. Атомарность - Atomicity, part 1
- Лекция 13. Атомарность - Atomicity, part 2
- Лекция 13. Атомарность - Atomicity, part 3
- Лекция 14. Аллокаторы - Allocators, part 1
- Лекция 14. Аллокаторы - Allocators, part 2
- Лекция 15. SFINAE
- Лекция 16. Метапрограммирование - Metaprogramming
- Лекция 17. Ключевое слово Constexpr, part 1
- Лекция 17. Ключевое слово Constexpr, part 2
- Лекция 18. Концепты - Concepts
- Лекция 19. Диапазоны - Ranges, part 1
- Лекция 19. Диапазоны - Ranges, part 2
- Лекция 20. Модули - Modules