No this is what I meant. 'A x' is a C++20 feature: place holder for deduced class type for the declaration of non type template parameter.

Le dim. 2 août 2020 à 08:21, Jefferson Carpenter via Std-Discussion <std-discussion@lists.isocpp.org> a écrit :
On 7/28/2020 11:55 AM, Olivier Kannengieser via Std-Discussion wrote:
>   thought that this code should compile under C++20:
>
>      template <class> struct A {};
>      template <class, A> struct B {};
>      template <A x> struct B <int, x> {};
>

You might have meant

     template <typename T, A<T> x> struct B <int, x> {};

Since A does not name a type, it names a family of types.
--
Std-Discussion mailing list
Std-Discussion@lists.isocpp.org
https://lists.isocpp.org/mailman/listinfo.cgi/std-discussion