
 如图,给 is_function_v 传入一个类,为假,传入一个函数对象则为真 。
 (2)以下是文心一言的解释,真好:
 在 C++ 中,std::is_function_v 是一个类型特征(type trait),用于检查给定的类型是否为函数类型。它是 C++17 中引入的一个模板元函数,返回一个布尔值,表示给定的类型是否为函数类型。
以下是使用 std::is_function_v 的示例:
#include <iostream>  
#include <type_traits>  
  
 template <class _Ty> // only function types and reference types can't be const qualified
constexpr bool is_function_v = !is_const_v<const _Ty> && !is_reference_v<_Ty>; 
  
int main() {  
    std::cout << std::boolalpha;  
    std::cout << "Is int a function type? " << std::is_function_v<int> << std::endl;  
    std::cout << "Is void(*)() a function type? " << std::is_function_v<void(*)()> << std::endl;  
    std::cout << "Is void(*)(int) a function type? " << std::is_function_v<void(*)(int)> << std::endl;  
    std::cout << "Is void(*)() const a function type? " << std::is_function_v<void(*)() const> << std::endl;  
    std::cout << "Is void(*)() & a function type? " << std::is_function_v<void(*)() &> << std::endl;  
    std::cout << "Is void(*)() && a function type? " << std::is_function_v<void(*)() &&> << std::endl;  
    return 0;  
}
测试结果如下:
 Is int a function type? false
 Is void()() a function type? true
 Is void()(int) a function type? true
 Is void()() const a function type? true
 Is void()() & a function type? true
 Is void(*)() && a function type? true
其实在vs2019上的测试结果不一致。再附上一图:
 



















