
2 семестр
Основы программирования.
Template Specialization
В примере в зависимости от порядка функций специализация шаблона является специализацией разных функций. Если мы специализируем тип Т* типом int*, то выберерется int*, а вот если мы специализируем тип T, как int*, а потом напишем функцию для Т*, то выберется последний вариант, как самый удобный
Пишем свой is_same
- пишем по дефолту static constexpr = false
- Пишем специализицию для одинаковых типов, где эта переменная уже будет равна true
Пишем idetity
фокус: в шаблоне пишем аргумент Т, а потом Т value, а внутри структуры будет лежать это же значение
Также можно сделать инкремент, написав +1
А возьмём и кладём auto прямо в шаблоне, и нам круто, не надо указывать ти
А теперь возьмём и напишем constexpr переменную, которая будет держать value от нашей структурки, а теперь не надо писать value
Metaprogramming функции могут возвращать типы
- просто пишем через юзинг
- возвращает тип, поэтому можно положить в другой шаблончик