Базовый курс C++ (MIPT, ILab). Lecture 16. Специализация и инстанцирование.
Описание
Лекции в бакалавриате МФТИ по C++ на русском языке.
Продолжая рассмотрение OpenCL C++ API мы случайно изобретём шаблонную специализацию. И вынуждены будем остановиться на этой технике, рассмотрев процесс инстанцирования и технику частичной специализации.
Лектор: Константин Владимиров
Дата лекции: 7 февраля 2022 года
Съёмка: Владислав Белов.
Звук: Дмитрий Рябцев.
Предыдущая лекция: https://youtu.be/Ccclo1GCX0A
Следующая лекция: https://youtu.be/MsuddUd7E2A
Слайды ко всем лекциям: https://sourceforge.net/projects/cpp-lects-rus/files/cpp-graduate
Примеры кода ко всем лекциям: https://github.com/tilir/cpp-graduate
Timeline:
00:00 Снова про OpenCL C++ API
03:30 Идея шаблонной специализации
12:30 Соглашение о namespace detail
21:06 Идея характеристик типов
29:22 Инстанцирование и специализации
38:32 Ленивость инстанцирования
48:25 Частичная специализация
59:57 Unique pointers и частичные специализации
01:04:50 Специализация и LSP
01:07:41 Двухфазное разрешение имён
01:15:31 Устранение неоднозначности
01:21:40 Cliffhanger
Errata:
* 57:30 primary template должен иметь один аргумент: https://godbolt.org/z/zGf18znaE
Рекомендуемые видео




















