首页 > 其他 > 详细

std::function解决函数重载绑定

时间:2020-06-15 12:25:59      阅读:60      评论:0      收藏:0      [点我收藏+]
// Functoional.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

#include <iostream>
#include <functional>
using namespace std;
typedef void(*f)(int);
typedef void(*FuncVoid)(void);

void Print()
{
	cout << "print" << endl;
}
void Print(int a)
{
	cout << "print" << a << endl;
}
class Fun
{
public:
	void Print()
	{
		cout << "print" << endl;
	}
	void Print(int a)
	{
		cout << "print" << a << endl;
	}

};


int main()
{
	FuncVoid fv;
	fv = Print;
	fv();
	void();
	//std::function<void()> func = std::bind<void()>(Print);
	//同名函数重载
	std::function<void()> func = bind((FuncVoid)Print);
	std::function<void(int)> func2 = bind((void(*)(int))Print, placeholders::_1);
	Fun f;
	std::function<void()> func3 = bind((void(Fun::*)())&Fun::Print, f);
	std::function<void(int)> func4 = bind((void(Fun::*)(int))&Fun::Print,
		f, std::placeholders::_1);
	func();
	func2(3);
	func3();
	func4(4);
	cout << "func c" << endl;

	return 0;
}

  

std::function解决函数重载绑定

原文:https://www.cnblogs.com/yang131/p/13129605.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!