C11 std::function 学习

news/2024/11/23 0:53:05/

此文,
https://blog.csdn.net/bcbobo21cn/article/details/111658249
使用了一次C11 std::function,是作为函数指针使用的;

进一步的来说,C11的std::function可以对任何可以调用的目标实体进行调用操作;

std::function

类模板 std::function 是一种通用的、多态的函数封装。
std::function 的实例可以对任何可以调用的目标实体进行存储、复制和调用操作,这些目标实体包括普通函数、Lambda 表达式、函数指针以及其他函数对象等。
std::function 对象是对 C++ 中现有的可调用实体的一种类型安全的包裹(像函数指针这类可调用实体,是类型不安全的)。

std::function其实就是一个类模板,含有c的函数指针概念。

简要来说:std::function是将所有可调用的实体封装起来,形成了一个新的std::function对象,用户在使用的时候不需要再去调用实体,只需要使用新的std::function来调用各实体;

示例,调用任何有两个int形参的返回值为int的对象;

#include <iostream>
#include <functional>
#include <list>
using namespace std;int myadd(int a, int b)
{return a + b;
}class MyFunc
{
public:int operator()(int a, int b){return a + b;}
};int main(int argc, char** argv)
{MyFunc func;std::list<std::function<int(int, int)>> flist;flist.push_back(myadd);flist.push_back(func);flist.push_back([](int x, int y)->int{return x + y;});for (const auto& e : flist){cout << e(13, 14) << endl;}
}

 

代码中list存储std::function<int(int, int)>类型的对象;然后逐个执行调用; 

 

 

第27行的写法我不是太熟悉,很少写这样的语法; 


http://www.ppmy.cn/news/477489.html

相关文章

2019年哪些手机值得期待?

2019年哪些手机值得期待&#xff1f; 1.ipone11 苹果2019年要发布的三款新手机&#xff0c;预计在2019年9月份发布会上发布iphone11。此前&#xff0c;苹果刚刚解决棘手的5G芯片问题&#xff0c;而关于今年的新款iphone外观也是大家关注的重点。 亮点1 提升信号表现 苹果改进i…

2019年5G手机大爆发:目前已有9款,哪款最值得入手?

2019年才过了不到四分之一&#xff0c;没想到已经涌现出了一批5G手机。之前我们更多和大家谈论的是&#xff0c;5G手机有没有在今年入手的必要。毕竟截止目前5G网络仍未在国内正式商用&#xff0c;要等到5G手机真正普及还得到2020年以后。 尽管如此&#xff0c;相信还是有不少…

JWT入门指南

1、Token认证 随着 Restful API、微服务的兴起&#xff0c;基于 Token 的认证现在已经越来越普遍。基于token的用户认证是一种服务端无状态的认证方式&#xff0c;所谓服务端无状态指的token本身包含登录用户所有的相关数据&#xff0c;而客户端在认证后的每次请求都会携带toke…

在坦桑尼亚如何打国际长途,打给你中国的朋友?

只要你充值了&#xff0c;就可以直接打回 国内任何电话 当然要在号码前加拨 “ 86”例如拨号132********就拨“86132********” 座机 如010******** 就拨8610*********不要拨座机区号前面的0 就可以了,发信息也是一样的。 记得要拨一个“”号&#xff0c;要不&#xff0c;联系不…

国内用户访问国内服务器,国外用户访问国外服务器

1、域名智能解析 通过来源&#xff0c;来解析访问服务器 添加记录值页面进行操作 2、域名判断 每个项目国内外配置域名&#xff0c;判断ip地址&#xff0c;访问不同域名。来达到效果 3、dns 在全局流量管理中&#xff0c;点击创建进行配置访问策略

php 验证座机,验证国内手机号与座机号的正则表达式

这次给大家带来验证国内手机号与座机号的正则表达式&#xff0c;验证国内手机号与座机号的正则表达式的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。验证手机号:^((13[0-9])|(14[7])|(15[^4,\\D])|(18[0,0-9])|(17[0,0-9]))\\d{8}$ 验证座机和手机号…

国际和国内电话区号

精选30云产品&#xff0c;助力企业轻松上云&#xff01;>>> https://baike.baidu.com/item/%E5%8C%BA%E5%8F%B7/1866086 https://zh.wikipedia.org/wiki/%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7 https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E7%94%B5%E8%AF%9D…

阿里云服务器是国内的还是国外的?

阿里云服务器地域遍布全球&#xff0c;有国内的也有国外的&#xff0c;国内地域云服务器需要ICP备案&#xff0c;中国香港地域和国外节点不需要备案。阿里云百科来详细说下阿里云服务器国内地域和国外地域分布表&#xff1a; 阿里云服务器是国内的吗&#xff1f; 阿里云服务器…