1 // Testcase from P0127R2
2 // { dg-options -std=c++17 }
4 template <long n> struct A { };
6 template <class T> struct C;
7 template <class T, T n> struct C<A<n>>
13 typedef C<A<2>>::Q R; // OK; T was deduced to long from the template argument value in the type A<2>