(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1z/
class-deduction106.C
// PR c++/104294
// { dg-do compile { target c++17 } }

template<class> struct B;

template<class R, class... Args>
struct B<R(Args...)> {
  template<class T> struct C { C(T); };
  C(decltype(nullptr)) -> C<void*>;
};

using ty1 = decltype(B<char(int)>::C{0});
using ty1 = B<char(int)>::C<int>;

using ty2 = decltype(B<char(int)>::C{nullptr});
using ty2 = B<char(int)>::C<void*>;