https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111281

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Frank Heckenbach from comment #4)
> template <typename T> concept IsFunction = std::is_function_v <T> ||
> (std::is_pointer_v <T> && std::is_function_v <std::remove_pointer_t<T>>);

remove_pointer is a no-op for non-pointers so you'll get the same result with:

template <typename T> concept IsFunction = std::is_function_v
<std::remove_pointer_t<T>>);

Reply via email to