Step 3 (S-11544)
Step on Stepik: https://stepik.org/lesson/566/step/3
<img width="50%" src="https://ucarecdn.com/46dd03bb-caab-4427-957b-32f4ab5d4401/">
[00:00 - 00:15] аналогичным образом устроено и полная спецификация шаблонных вот давайте разберем это например шаблонов интересует шаблонная функция принимает 2 однотипных аргументы по ссылке и меняет их местами наиболее
[00:15 - 00:32] общая реализация этой функции могут выглядеть так мы сохраняем значения аргумента переменной temp да мы присваиваем левом аргумент значение правого аргумента и после этого аргумента значение лил аргумента сохраненных переменной temp такой подход отлично работает с разными типами
[00:32 - 00:48] он также будет работать с пользователями типа у которых есть конструктор копирования в 1 строке и оператор присвоения который вызывает во 2 и 3 строках однако могут быть польские типа у которых
[00:48 - 01:04] нет оператора присваивания как только перестанет быть запрещены но при этом для такого типа может быть признать процессов и реализовано например как метод слов давайте рассмотрим помню специализацию
[01:04 - 01:19] этой шаблонной функции для такого типа но вот что значит некоторый тип датабейз у которого нету конструктора копирования оператора присваивания но есть метод для такого типа мы можем специализировать эту функцию
[01:19 - 01:38] точно так же как и с классом и сначала пишем шаблоны заголовок с пустым списком шаблонных параметров и после этого определяет специализацию функциям с тобой срок для нет для посоветовались вот этой реализацией
[01:38 - 01:58] вызываем метод кроме классов у которых нету конструктор которые могут быть еще политически классы в которых есть компьютер и копирую но они довольно трудоемкий и получается что для того чтобы поменять перемена местами
[01:58 - 02:13] нам приходится делать очень много работы например класс массива есть если бы вы с ним метод описанный внутри массива то в этом просто у меня несколько указателей а если мы будем применять эту функцию своп
[02:13 - 02:30] кто этим массивом в таком измененном виде то мы там эти мотивы 300 скопировать скопировано там дважды присвоил что довольно трудоемко знаки хватил тоже можно реализовать на вот может быть проблема что такой
[02:30 - 02:50] класс шаблоны для таких классов нужно определять нет специализацию шаблона от перегрузку дать подарок это делать мы определяем просто ну вы шаблонную функцию у нее будет свой список параметров но
[02:50 - 03:08] типам параметры бы не ты а ты например и внутри мы сможем вызвать метод своп разница между специализациями и перегрузкам то гармонично