Skip to content

Latest commit

 

History

History

sem12

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Семинар 12

Темы, рассмотренные на семинаре

Шаблонный класс std::iterator_traits для унифицированного получения свойств итераторов и указателей.

См. пример 1.

Специализация шаблонных классов. Статические поля класса для типов (например value_type или type) и для констант (value).

См. пример 2.

Частичная специализация шаблонных классов. (внимание! шаблонные функции нельзя частично специализировать)

См. пример 3.

Шаблонные функции с переменным числом шаблонных параметров. Универсальные ссылки в шаблонных функциях. Контексты, в которых можно раскрыть variable arguments pack. Универсальная forwarding шаблонная функция.

Шаблонные классы с переменным числом шаблонных параметров. Сопоставление с параметрами шаблона для "откусывания" по одному параметру из пакета переменных параметров.

"Рекурсивное" раскрытие шаблона в случае параметра шаблона целого типа.

Идиома SFINAE. Использование std::enable_if для выбора варианта шаблонной функции при выполнении условий.

См. пример 5.

Использование std::enable_if и <type_traits> для выбора варианта шаблонной функции в зависимости от свойств типа.

См. пример 6.