• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Метапрограммирование

Преподаватель: Крахмалёв Денис Сергеевич

Модуль: 1-2

Кредиты: 2

Аннотация:

Курс состоит из семинаров.

Материал курса состоит из рассказа о паттернах проектирования программных систем и основ Объектно-ориентированного программирования, а также реализации некоторых паттернов с помощью шаблонного метапрограммирования и новых возможностях языка C++, начиная с C++14. Цель курса -- дать слушателям представление о проектировании архитектуры приложений и программных продуктов, познакомить их с возможностями языка C++ последних стандартов и раскрыть идеи шаблонного метапрограммирования и его приложений при реализации библиотек и программ на языке C++

Оценка ставится по совокупным баллам за семестровую работу(решение практических задач) 


План занятий:

  1. Введение, списки типов
    Хранение типа как объекта данных, различные подходы Списки типов a) создание b) обработка c) операция получения размера списка d) операция получения элемента по индексу e) операция поиска элемента / элементов f) операции добавления и удаления элементов

  2. Фабрики объектов
    a) различные подходы к реализации на С++ b) фабрика клонирования c) абстрактные фабрики

  3. Генерация классов на основе списка типов
    a) генерация распределенных иерархий b) генерация кортежей c) генерация линейных иерархий d) генерация сложных иерархий

  4. Обобщенные функторы
    a) шаблон Command b) вызываемые сущности в языке С++ c) скелет шаблонного класса функтора d) преобразования типов аргументов и возвращаемого значения e) указатели на функции-члены f) связывание и сцепление

  5. Мультиметоды
    a) двойное переключение по типу — грубый подход b) симметричность грубого подхода c) логарифмический двойной диспетчер d) двойная диспетчеризация функторов e) мультиметоды

Формула оценивания:

Оценка = Оценка за устный экзамен

Программа учеюной дисциплины: 

ПУД_Метапрограммирование (HTML, 27 Кб) 

Для кого: студенты ФКН всех курсов и направлений, начиная со 2 курса

Пререквизиты: Базовое знание С++

Расписание: вторник 16:20-17:40 с 22 сентября (онлайн)

Подключиться к занятию