Как работает сопоставление с образцом для вывода аргументов шаблона в C ++ - PullRequest
0 голосов
/ 15 февраля 2019

Я немного растерялся, читая вывод аргумента шаблона для спецификации функции .

Я ищу некоторое представление о том, как работает сопоставление с образцом.Например:

template <typename T>
void foo(T& t);
//       **--------P (T&)

const int& a = ...;
foo(a);
//  *----- A (const int&)

Как указывает следующий ответ :

(i) Если A является ссылкой, игнорируйте ссылочную часть (ii)затем сопоставьте шаблон A с P, чтобы определить T.

Но как это делается и работает ли это.Я ссылаюсь на этот раздел :

Если P имеет одну из форм, включающую список параметров шаблона или, затем каждый элемент Pi этого списка аргументов шаблона сопоставляется с соответствующим аргументом шаблона Ai его A .Если последний Pi является расширением пакета, то его шаблон сравнивается с каждым оставшимся аргументом в списке аргументов шаблона A .

что мне совершенно не понятно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...