Метапрограммирование
Преподаватель: Крахмалёв Денис Сергеевич
Модуль: 1-2
Кредиты: 2
Аннотация:
Курс состоит из семинаров.
Материал курса состоит из рассказа о паттернах проектирования программных систем и основ Объектно-ориентированного программирования, а также реализации некоторых паттернов с помощью шаблонного метапрограммирования и новых возможностях языка C++, начиная с C++14. Цель курса -- дать слушателям представление о проектировании архитектуры приложений и программных продуктов, познакомить их с возможностями языка C++ последних стандартов и раскрыть идеи шаблонного метапрограммирования и его приложений при реализации библиотек и программ на языке C++
Оценка ставится по совокупным баллам за семестровую работу(решение практических задач)
План занятий:
-
Введение, списки типов
Хранение типа как объекта данных, различные подходы Списки типов a) создание b) обработка c) операция получения размера списка d) операция получения элемента по индексу e) операция поиска элемента / элементов f) операции добавления и удаления элементов -
Фабрики объектов
a) различные подходы к реализации на С++ b) фабрика клонирования c) абстрактные фабрики -
Генерация классов на основе списка типов
a) генерация распределенных иерархий b) генерация кортежей c) генерация линейных иерархий d) генерация сложных иерархий -
Обобщенные функторы
a) шаблон Command b) вызываемые сущности в языке С++ c) скелет шаблонного класса функтора d) преобразования типов аргументов и возвращаемого значения e) указатели на функции-члены f) связывание и сцепление -
Мультиметоды
a) двойное переключение по типу — грубый подход b) симметричность грубого подхода c) логарифмический двойной диспетчер d) двойная диспетчеризация функторов e) мультиметоды
Формула оценивания:
Оценка = Оценка за устный экзамен
Программа учеюной дисциплины:
ПУД_Метапрограммирование (HTML, 27 Кб)
Для кого: студенты ФКН всех курсов и направлений, начиная со 2 курса
Пререквизиты: Базовое знание С++
Расписание: вторник 16:20-17:40 с 22 сентября (онлайн)
Подключиться к занятию