mizvekov wrote:
So Jason pointed out that GCC's provisional wording for CWG2398 picks a dubious
candidate for this example:
```C++
template<typename T, typename U> struct match2;
template<template<typename A> class t1,typename T>
struct match2<t1<T>, typename t1<T>::type > { typedef int type; }; // #5
template<template<typename B, typename C> class t2,typename T0,typename T1>
struct match2<t2<T0,T1>, typename t2<T0,T0>::type > { typedef int type; }; //
#6
template <class T, class U = T> struct Q { typedef int type; };
match2<Q<int>, int> m;
```
They pick #6, where with this PR we stay with ambiguous.
According to [this GCC
bug](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114841), he suggests changing
GCC to adopt the wording proposed here.
https://github.com/llvm/llvm-project/pull/89807
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits