[diff.cpp20.temp]

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

## C.2 C++ and ISO C++ 2020 [[diff.cpp20]](diff.cpp20#temp)

### C.2.6 [[temp]](temp "13 Templates"): templates [diff.cpp20.temp]

[1](#1)

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

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


**Change:** Deducing template arguments from exception specifications[.](#1.sentence-1)

  


**Rationale:** Facilitate generic handling of throwing and non-throwing functions[.](#1.sentence-2)

  


**Effect on original feature:** Valid ISO C++ 2020 code may be ill-formed in this revision of C++[.](#1.sentence-3)

[*Example [1](#example-1)*: template<bool> struct A { };template<bool B> void f(void (*)(A<B>) noexcept(B));void g(A<false>) noexcept;void h() { f(g); // ill-formed; previously well-formed} â *end example*]
