1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// { dg-do compile { target c++17 } } template<template<class> class> struct A { }; template<class T> struct B { template<template<class> class TT, A<TT>* = nullptr> B(TT<T>); }; template<class T> struct C { }; using type = decltype(B{C<int>{}}); using type = B<int>;