What type is int(int)& or int(int) const &?
std::is_function is specialized for types which have signature similar to: int(int) & see here: std::is_function But this is neither a pointer to a member method, which signature could be: int(T::*)(int) & Nor it can be a reference to a function: int (&)(int) So what is this strange signature? It's a function type which only exists in the type system. It cannot ever be created. But this is neither a pointer to a member method, which signature could be: int(T::*)(int) & It's this, without the pointer. The type system allows you to describe that as a type. #include <type_traits> struct T { };