================
@@ -470,6 +470,35 @@ features cannot lower the translation-unit ABI level;
 
 - Fixed an issue where `__typeof__` incorrectly rejected cv-qualified function 
types.
 
+- Class template argument deduction through an alias template now works when
+  the right-hand side of the alias names another alias template that cannot
+  have deduction guides of its own, such as an identity alias
+  (`template <class T> using Identity = T;`). The deduction guides are now
+  derived from the first template in the chain that can have them, per the
+  equivalence rule of `[temp.alias]p2`, matching GCC. (#GH125821)
+
+- Class template argument deduction through an alias template now works when
+  a template parameter of the alias only appears in the synthesized deduction
+  guide through default template arguments. Such a template parameter now gets 
a default
+  template argument deduced from the return type of the underlying deduction
+  guide (here `Key` becomes the iterator's value type), instead of being
+  undeducible.
+
+- Fixed a crash in class template argument deduction through an alias template
+  when the alias fixes a non-type template parameter of the underlying template
+  to a constant (e.g. `template <class T> using A = S<T, false>;`) and a
+  non-deduced template parameter of a constructor or deduction guide refers to
+  it in its type, such as `std::enable_if_t<!B, int> = 0`. If that type becomes
+  invalid with the constant substituted, the deduction guide is now silently
+  not synthesized for the alias instead of crashing, matching GCC.
+
+- Fixed a crash in class template argument deduction when the deduced type
+  contains the closure type of a lambda from the right-hand side of an alias
+  template (`template <class T> using A = S<T, decltype([](T) {})>;`) or from
+  the return type of a user-written deduction guide. The lambda is now
+  instantiated along with the deduction guide, and its closure type is created
+  in the scope enclosing the guide so that it can be mangled, matching GCC.
----------------
bassiounix wrote:

Well GCC is not my god FWIW.

But I believe if you took a look to the related issues you would know why it's 
mentioned here.
Or go read my last comment, maybe it's enough as a simple explanation :D

https://github.com/llvm/llvm-project/pull/193056
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to