#include <function.h>
is_member_function_ptr<F>||is_nonmember_function_ptr<F> note this is semantically different from std::is_function