blob: d662552614e5216388059f3922a5ccc5c0517917 [file] [log] [blame]
// PR c++/97093
// { dg-do compile { target c++20 } }
// { dg-additional-options "-fconcepts-diagnostics-depth=3 --param=hash-table-verification-limit=10000" }
template <typename T>
concept C = requires (T t)
{
requires t.some_const < 2 || requires { t.some_fn (); };
};
template <unsigned, unsigned>
struct c
{};
template <typename T>
concept P = requires (T t, c <0, 1> v) { { t (v) }; }; // { dg-error "no match" }
template <P auto, P auto ...>
struct m
{
constexpr auto operator () (C auto) const
{};
};
struct pc
{
constexpr auto operator () (C auto) const
{};
};
constexpr auto cc = pc {};
constexpr auto mmcc = m <cc> {}; // { dg-error "not satisfied" }