一下内容引用自 江南-一苇渡江
https://blog.csdn.net/wangshubo1989/article/details/49134235

//代码出自链接:http://www.jellythink.com/archives/771
#include <functional>
#include <iostream>
using namespace std;std::function< int(int)> Functional;// 普通函数
int TestFunc(int a)
{return a;
}// Lambda表达式
auto lambda = [](int a)->int{ return a; };// 仿函数(functor)
class Functor
{public:int operator()(int a){return a;}
};// 1.类成员函数
// 2.类静态函数
class TestClass
{public:int ClassMember(int a) { return a; }static int StaticMember(int a) { return a; }
};int main()
{// 普通函数Functional = TestFunc;int result = Functional(10);cout << "普通函数:"<< result << endl;// Lambda表达式Functional = lambda;result = Functional(20);cout << "Lambda表达式:"<< result << endl;// 仿函数Functor testFunctor;Functional = testFunctor;result = Functional(30);cout << "仿函数:"<< result << endl;// 类成员函数TestClass testObj;Functional = std::bind(&TestClass::ClassMember, testObj, std::placeholders::_1);result = Functional(40);cout << "类成员函数:"<< result << endl;// 类静态函数Functional = TestClass::StaticMember;result = Functional(50);cout << "类静态函数:"<< result << endl;return 0;
}

以下代码引用自
https://www.cnblogs.com/and%5Fswordday/p/4643975.html
//普通函数重载绑定

void print1()
{std::cout << "non args \n";
}void print1(int v)
{std::cout << "arg value is " << v << std::endl;
}std::function<void()> fn = std::bind((void (*)())print1);
fn();std::function<void(int v)> fn1 = std::bind((void(*)(int v))print1, std::placeholders::_1);
fn1(10);//成员函数重载绑定
class A
{public:
void print1()
{std::cout << "mem fn: --- non args\n";
}void print1(int v)
{std::cout << "mem fn: --- arg value is " << v << std::endl;
}
};A a;
std::function<void (A*)> mem_fn = std::bind((void(A::*)())&A::print1, std::placeholders::_1);
mem_fn(&a);std::function<void (A*, int v)> mem_fn1 = std::bind((void(A::*)(int v))&A::print1, std::placeholders::_1, std::placeholders::_2);
mem_fn1(&a, 10);

std::function笔记相关推荐

  1. std::function 学习笔记(3)

    下面是我的std::function的阅读笔记: // CLASS TEMPLATE function template <class _Fty> class function : pub ...

  2. 函数指针amp;绑定: boost::functoin/std::function/bind

    see link: https://isocpp.org/wiki/faq/pointers-to-members function vs template: http://stackoverflow ...

  3. C++ std::function<void(int)> 和 std::function<void()> 作为函数参数的注意事项

    前言 std::function 作为标准库提供的函数指针,使用起来还是比较方便的,不过在使用过程中有一些需要注意的细节,这里做一个简单的记录. 基本使用 头文件: #include <func ...

  4. C++11中std::function的使用

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

  5. std::function简介

    1. 简介 std::function是一个函数对象的包装器,std::function的实例可以存储,复制和调用任何可调用的目标,包括: 函数. lamada表达式. 绑定表达式或其他函数对象. 指 ...

  6. C++——包装器std::function与绑定器std::bind

    C++--包装器std::function与绑定器std::bind 1.可调用对象的包装器 std::function是可调用对象的包装器.它是一个类模板,可以容纳除了类成员(函数)指针之外的所有可 ...

  7. C++11 std::bind std::function 高级用法

    C++11 std::bind std::function 高级用法 (c++11的新特性) 原文:https://blog.csdn.net/yangjie6898862/article/detai ...

  8. C++中std::function和std::bind

    1.可调用对象 可调用对象有一下几种定义: 是一个函数指针,参考 C++ 函数指针和函数类型: 是一个具有operator()成员函数的类的对象: 可被转换成函数指针的类对象: 一个类成员函数指针: ...

  9. callable object与新增的function相关 C++11中万能的可调用类型声明std::function...

    在c++11中,一个callable object(可调用对象)可以是函数指针.lambda表达式.重载()的某类对象.bind包裹的某对象等等,有时需要统一管理一些这几类对象,新增的function ...

最新文章

  1. c++获取可用端口号_PG高可用架构实施方案
  2. 基于PyQt5的快速开发框架QFramer
  3. 1.11 神经网络的权重初始化-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  4. 正式环境docker部署hyperf_Hyperf使用docker-compose集群部署
  5. 布尔(bool)全排列
  6. 红橙Darren视频笔记 数据库操作优化 数据查询(数据库操作)中
  7. css高度自适应以及高度塌陷总结
  8. 读书笔记∣《世界是数字的》知识点整理
  9. android5.1蓝牙反向控制(Avrcp协议)流程
  10. 3. (5.18~5.25)2022年自动化保研信息+分析汇总(夏令营)
  11. 语音信号处理、语音信号分析
  12. 免费的文档翻译教程;免费将很长的文档英文翻译成中文
  13. 解决:微软拼音输入法不显示选字栏,微软的拼音输入法第一个候选词不显示
  14. wget 整站下载
  15. TestNG使用教程
  16. 如何同时或者按顺序间隔启动多个程序
  17. 经典的股票量化交易策略(含源码)
  18. 最新Quarters II 13.1 下载安装全教程 + ModelSim联调(2022/12/11 )
  19. SVG黑科技微信排版『层层左右交错滑开』模板代码
  20. 计算机组成原理学习笔记(上)

热门文章

  1. eclipse2021版配置maven全过程(详细!!)
  2. 2020三月实习后台春招经历
  3. 2021港中深通信工程硕士项目面经
  4. python樱花手绘_GitHub 硬核项目:动漫生成器让照片秒变手绘日漫风!!!
  5. 网络优化之net.ipv4.tcp_tw_recycle和tcp_tw_reuse参数
  6. WinRAR4.01破解版破解过程
  7. SoO of EBGP
  8. 翻译软件 Babylon Pro V6.0.0 R32免安装版
  9. 人工智能的编年史——从开始到现在
  10. 提取pdf里关键信息到mysql