利用bind可以实现参数的顺序交换,也可以实现一些动态的默认参数设置如下:
#include<functional> using namespace std; // 指定命名空间placeholders using namespace std::placeholders; int test(int a, int b, int c) { return 0; } int main() { // 相当于调用test(1,2,3); auto f1 = bind(test, 1, _1, _2); f1(2, 3); // 相当于调用test(1,3,2); auto f2 = bind(test, 1, _2, _1); f2(2, 3); return 0; }