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

template<class T> struct Optional {
  template<class U> Optional(U&&);
};

template<class A> Optional(A) -> Optional<A>;

Optional opt(1729);
Optional dupe(opt);

using ty1 = decltype(opt);
using ty1 = Optional<int>;

using ty2 = decltype(dupe);
using ty2 = Optional<int>;