17 Templates [temp]

17.8 Function template specializations [temp.fct.spec]

17.8.2 Template argument deduction [temp.deduct]

17.8.2.6 Deducing template arguments from a function declaration [temp.deduct.decl]

В объявлении, которое declarator-idссылается на специализацию шаблона функции, выполняется вывод аргументов шаблона, чтобы идентифицировать специализацию, к которой относится объявление. В частности, это делается для explicit instantiations, explicit specializationsи некоторые friend declarations. Это также делается, чтобы определить, соответствует ли специализация шаблона функции освобождения месту размещения operator new ([basic.stc.dynamic.deallocation], [expr.new]). Во всех этих случаях P это тип шаблона функции, который рассматривается как потенциальное соответствие, и A это либо тип функции из объявления, либо тип функции освобождения, которая будет соответствовать размещению, operator new как описано в [expr.new]. Удержание производится, как описано в [temp.deduct.type].

Если для рассматриваемого таким образом набора шаблонов функций совпадение либо отсутствует, либо имеется более одного совпадения после того, как было рассмотрено частичное упорядочение ([temp.func.order]), вывод не выполняется и, в случаях объявления, программа имеет неправильный формат.