(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
concepts-ctad1.C
// PR c++/98611
// { dg-do compile { target c++20 } }

template <class T, class U>
concept IsSame = __is_same(T, U);

template <class T, template <class...> class _Class>
concept IsInstantiationOf = requires(T object) {
 { _Class{object} } -> IsSame<T>;
};

template <class T> struct Degrees {};
static_assert(IsInstantiationOf<Degrees<int>, Degrees>);

template <class T> struct NotDegrees {};
static_assert(!IsInstantiationOf<Degrees<int>, NotDegrees>);