// PR c++/93551 // { dg-do compile { target concepts } } namespace std { template struct integral_constant { static constexpr _Tp value = __v; typedef _Tp value_type; typedef integral_constant<_Tp, __v> type; constexpr operator value_type() const noexcept { return value; } }; template struct is_base_of : public integral_constant { }; template inline constexpr bool is_base_of_v = is_base_of<_Base, _Derived>::value; } class Bar { }; struct Foo { template requires std::is_base_of_v Foo(P const&); }; template Foo fun(P const& arg) { (bool)arg; // { dg-error "" } return Foo {arg}; } int main() { fun(Bar{}); return 0; }