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

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

Курс посвящен продвинутому программированию на С++ с использованием шаблонов. 

Различные подходы и механизмы рассматриваются вместе с их реализацией. Приводятся несколько реализаций: современная и ретроспективная, что помогает лучше понять современные стандарты языка. 

Для кого предназначен:

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

Пререквизиты:

Необходимо знать язык программирования С++ на довольно высоком уровне. 

Нужно быть знакомым с последними стандартами: С++11, С++14, С++17

 

Приблизительная программа:

  1. Введение в программирование, основанное на шаблонах
  2. Хранение типа как объекта данных, различные подходы
  3. Списки типов

a)    создание

b)   обработка

c)    операция получения размера списка

d)   операция получения элемента по индексу

e)    операция поиска элемента / элементов

f)    операции добавления и удаления элементов

  1. Фабрики объектов

a)    различные подходы к реализации на С++

b)   фабрика клонирования

c)    абстрактные фабрики

  1. Генерация классов на основе списка типов

a)    генерация распределенных иерархий

b)   генерация кортежей

c)    генерация линейных иерархий

d)   генерация сложных иерархий

  1. Обобщенные функторы

a)    шаблон Command

b)   вызываемые сущности в языке С++

c)    скелет шаблонного класса функтора

d)   преобразования типов аргументов и возвращаемого значения

e)    указатели на функции-члены

f)    связывание и сцепление

  1. Мультиметоды

a)    двойное переключение по типу — грубый подход

b)   симметричность грубого подхода

c)    логарифмический двойной диспетчер

d)   двойная диспетчеризация функторов

e)    мультиметоды

 

Нагрузка:

12 семинаров — 24 часа

3 домашних задания — 18 часов

Аудиторная работа – 42 часа

Самостоятельная работа – 34 часа

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

По понедельникам
с 16:40 до 19:30 (только семинары)
1 модуль
23 сентября - первое зантие - ауд. R601
С 30 сентября по 21 октября – ауд.G114 (на 30 человек семинарская)

С 28 октября по 25 ноября – ауд.G115 (семинарская)
С 2 декабря по 16 декабря – ауд.G114 (семинарская)