[diff.cpp14.temp]

# Annex C (informative) Compatibility [[diff]](./#diff)

## C.4 C++ and ISO C++ 2014 [[diff.cpp14]](diff.cpp14#temp)

### C.4.6 [[temp]](temp "13 Templates"): templates [diff.cpp14.temp]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L1764)

**Affected subclause:** [[temp.deduct.type]](temp.deduct.type)  


**Change:** Allowance to deduce from the type of a constant template argument[.](#1.sentence-1)

  


**Rationale:** In combination with the ability to declare
constant template arguments with placeholder types,
allows partial specializations to decompose
from the type deduced for the constant template argument[.](#1.sentence-2)

  


**Effect on original feature:** Valid C++ 2014 code may fail to compile
or produce different results in this revision of C++[.](#1.sentence-3)

[*Example [1](#example-1)*: 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} â *end example*]
