Annex C (informative) Compatibility [diff]

C.4 C++ and ISO C++ 2014 [diff.cpp14]

C.4.6 Clause [temp]: templates [diff.cpp14.temp]

[temp.deduct.type]
Изменение: возможность выводить из типа аргумента шаблона, не являющегося типом.
Обоснование: в сочетании с возможностью объявлять аргументы шаблона, не являющиеся типом, с типами-заполнителями, позволяет частичным специализациям разлагаться на основе типа, выведенного для аргумента шаблона, не являющегося типом.
Влияние на исходную функцию: действительный код C ++ 2014 может не компилироваться или давать другие результаты в соответствии с этим международным стандартом:

template <int N> struct A;
template <typename T, T N> int foo(A<N> *) = delete;
void foo(void *);
void bar(A<0> *p) {
  foo(p); // ill-formed; previously well-formed
}