测试 c++ 之 is_function_v

在这里插入图片描述
如图,给 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上的测试结果不一致。再附上一图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值