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

template<class T, int = 1>
struct Foo {
  Foo() = default;
  Foo(const Foo&) = delete;

  template<int I>
  Foo(const Foo<T, I>&);
};

template<class T, int I>
Foo(Foo<T,I>) -> Foo<T,I+1>;

Foo<int> a;
Foo b = a;