#include #include struct A { int fun() const&; }; template struct PM_traits {}; template struct PM_traits { using member_type = U; }; int f(); int main() { std::cout << std::boolalpha; std::cout << std::is_function::value << '\n'; std::cout << std::is_function::value << '\n'; std::cout << std::is_function::value << '\n'; std::cout << std::is_function::value << '\n'; using T = PM_traits::member_type; // T 为 int() const& std::cout << std::is_function::value << '\n'; }