// PR c++/118698 // { dg-do compile { target c++20 } } template struct foo {}; template struct bar {}; template T&& declval (); template concept callable = requires { declval()(declval()); }; template typename U> concept is_specialization_of = callable( U const& ) { }),T>; static_assert( is_specialization_of,foo> == true ); static_assert( is_specialization_of,bar> == false ); template concept is_foo = is_specialization_of; static_assert( is_foo> ); static_assert( is_foo> == false );