当前位置:编程学习 > C/C++ >>

c++0x 学习笔记之 Function template bind

std::bind 定义在

1
#include <functional>

 

有两种声明,为

1
2
template<class F, class... BoundArgs>
unspecified bind(F&& f, BoundArgs&&... bound_args);

1
2
template<class R, class F, class... BoundArgs>
unspecified bind(F&& f, BoundArgs&&... bound_args);

其中的 … 是 c++0x 引入的 variadic template

 

std::bind 最基本的使用如

1
2
3
4
5
int f(int a, int b)
{
    return a + b;
}
std::bind(f, 1, 2 );

配合 std::placeholders 则可以产生一些函数对象,比如配合 auto 使用:

1
2
3
4
5
6
int g(int a, int b, int c)
{
    return a + b + c;
}
  
auto gg = std::bind( g, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);

 

注意一下使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,