Step 4 (S-11546)

From Stepik Wiki
Revision as of 09:04, 21 March 2017 by Admin (Talk | contribs) (Create page for step id=11546)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/566/step/4

<img width="50%" src="https://ucarecdn.com/69d33241-9ee5-4d1c-9b95-012b7713753a/">

[00:00 - 00:15] для того чтобы разобраться в чем разница между полами специализации шаблона перегрузка шаблонные функции давайте рассмотрим следующий пример неопределившимся 1 функция шаблонная функция от 1 шаблонного параметра


[00:15 - 00:31] да она будет принимать 2 параметра значение 2 функция это будет ее перегрузка шаблоны функционал уже у 2 шаблонных параметров и она будет принимать


[00:31 - 00:49] 2 аргумента 1 2 типа и 3 функция это будет полная специализация функцию номер 2 для того случая когда и t и в равны into


[00:49 - 01:06] теперь ждать ответа на этот вопрос если функцию мы вызовем функцию фонд передадим ей 2 значение типа int какая функция будет вызвана на допрос надо понять каким образом момент


[01:06 - 01:24] компиляция соотносится выбор полный специализации функции игрек перегрузки ты то оказывается что выбор специализаций функциям происходит после того как отработан механизм перегрузки поэтому в данном случае будет вызвано


[01:24 - 01:40] функция с номером 1 почему давайте еще раз разберемся значит сначала отрабатывает перегрузка не так перегрузки участвуют только функции 1 и 2 специализация это перевозки не рассматриваются а


[01:40 - 01:57] следовательно выбирается наиболее подходящее только дисфункцией 1 2 из этих функций наиболее подходящий является 1 потому что она подразумевает что оба аргумента 1 типа поэтому будет вызвана именно функции 1


[01:57 - 02:15] несмотря на то что 3 функция выглядит намного лучше подходящее оно принадлежит of объявлено таким образом вот такое выражение никогда не будет приводить к вызовы 3 функцию мы можем ее вызвать явно если мы напишем


[02:15 - 02:31] то есть укажем шаблонный параметр но без шаблонных параметров этом ты никогда не будет при этом если бы мы изначально сделали эту функцию не специализация перегрузкой то есть вычеркнули бы это вот это


[02:31 - 02:47] то тогда эта функция конечно было бы выгрыз выбрана при перегрузке так как она при перегрузке являлось бы наиболее подходящий для вызовов поэтому использование полный специализации функции довольно спорный момент


[02:47 - 02:53] большинстве случаев намного удобней использовать перегрузку и перегрузка будет намного естественней работать