В объявлении, которое 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]), вывод не выполняется и, в случаях объявления, программа имеет неправильный формат.