c++11绑定器bind
来源:互联网 发布:淘宝数据包 编辑:程序博客网 时间:2024/06/05 04:41
在c++11中,为函数的参数绑定增加了binder(绑定器),比以前版本的bind1st和bind2nd方便很多,功能也强大很多。
配合auto关键字,bind可以实现将参数绑定成固定值和改变参数的顺序。
当遇见重载的函数是,需要在绑定是,将函数指针(函数名)强制转换为相应的具体类型才行。
具体的实例见下面的代码,具体使用见注释:
<pre name="code" class="cpp">
#include <iostream>#include <string>#include <functional>using namespace std;<span style="background-color: rgb(51, 255, 51);">using namespace std::placeholders</span>;<span style="color:#ffcc66;"> </span><span style="color:#330033;background-color: rgb(255, 255, 0);"> //bind中用到的_1,_2的命名空间</span><span style="color:#ffcc66;"></span>void func(int num, const string& str){cout<<"func("<<num<<","<<str<<")"<<endl;}void overloaded(int num){}void overloaded(float f){}int main(){//把第二个参数绑定为固定的值string str = "buaa";auto f1 = bind(func,<span style="background-color: rgb(51, 255, 51);"> _1, str</span>);f1(16);//重新安排参数的顺序auto f2 = bind(func, <span style="background-color: rgb(51, 255, 51);">_2, _1</span>);f2("test", 32);//重载函数的时候绑定必须制定绑定重载的类型auto f3 = bind(<span style="background-color: rgb(51, 255, 51);">(void(*)(float))overloaded</span>, _1);system("pause");return 0;}
具体的下过见下图所示:
此外不得不赞下auto,太尼玛的好用了,万金油啊!
0 0
- C++11 学习笔记 std::function和bind绑定器
- C++11 笔记 std::function,bind绑定器和lambda
- c++11绑定器bind
- boost bind 绑定器
- std::bind绑定器、std::function、extern C的使用
- C++11可调用对象和bind绑定器
- C++11 std::function和std::bind绑定器
- bind绑定
- C++primer--lambda表达式-参数绑定之bind
- WinSock 绑定(bind())问题?
- jquery bind绑定
- boost::bind 函数绑定
- ios Bind绑定
- linux socket bind绑定
- 参数绑定bind
- jquery bind的绑定
- bind参数绑定
- 参数绑定bind
- <深入理解C指针>学习笔记和总结 第五章 指针和字符串
- <深入理解C指针>学习笔记和总结 第六章 指针和结构体
- <深入理解C指针>学习笔记和总结 第六章 指针和结构体 第二部分
- Ubuntu安装texlive(vanilla installation)
- WPF TextBox 控件获取热键并转为 win32 Keys
- c++11绑定器bind
- 更新OPatch中OCM报错
- LeetCode2.1.14 @ Valid Sudoku 验证数独D2F2
- Chapter6 SQL:Data Manipulation
- 有关ReprojectImageTo3D的点云长得奇怪的解决方案
- SQL SERVER基础
- 开机,连网,application, 启动Service 记录
- 5.1.12 Populating Next Right Pointers in Each Node II
- Chapter 1 Databases and Database Users