std名空间下的function

std::function 介绍

类模板std::function 是一种通用,多态的函数封装。std::function 的实例可以对任何调用的目标实体进行存储复制,和调用操作,这些目标实体包括普通函数lambda表达式函数指针,以及其他函数对象。

std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。

通过实际的代码例子,演示如何使用std::function

#include<functional>
#include <iostream>
using namespace std;
//function<int(int)> 括号内为传入的参数个数及其类型,为空也需要用()不能省略 括号外为返回的参数类型
std::function<int(int)> Functional;

//普通函数
int TestFunc(int a)
{
    return a;
}
//lamba表达式
auto lamba = [](int a)->int{return a;};

int main()
{
    //普通函数
    Functional = TestFunc;
    int result = Functional(10);
    cout<<"普通函数"<<result<<endl;
    
     // Lambda表达式
    Functional = lambda;
    result = Functional(20);
    cout << "Lambda表达式:"<< result << endl;
}

std::function对象最大的用处就是在实现函数回调

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容