C++11 占位符placeholders和函数bind用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <string>
#include <functional>
using namespace std;
using namespace std::placeholders;
  
void test(int i, double d, const string &s)
{
    cout << "i= " << i << " d= " << d <<" s= " << s << endl;
}
int test1(int i, double d, const string &s)
{
    cout << "i= " << i << " d= " << d <<" s= " << s << endl;
    return i;
}
  
int main(int argc, const char *argv[])
{
    function<void( void )> fp;
    string s = "foo";
    int a = 3;
    double b = 6.7;
    fp = bind(&test, a, b, s);
    fp();
  
    function <void (int , const string&)> fp1;
    double b2 = 4.6;
    fp1 = bind(test, _1, b2, _2);
    fp1(4, "kity");
  
    function <int (int , const string&) > fp2;
    fp2 = bind<int>(test1, _1, b2, _2);
    int  y = fp2(4, "kity");
    cout << y << endl;
  
    auto fn = bind(test, 10, 23.3, "heko");//不用function指定函数参数,
    fn();
  
    auto ff = bind(test, _1, _3, _2);//bind中的i参数类型与test的_j的参数类型对应
    ff(12, "ppp", 12.5);
  
    class A
    {
        public:
            void print(int a, double x)
            {
                cout << a << " " << x << endl;
            }
    };
    A a3;
    auto fclass= bind(&A::print, &a3, 11, 7.7);
    fclass();
    return 0;
}<br><br><br>参照 https://blog.csdn.net/aa838260772/article/details/39828207

 

posted on   奔跑吧,蜗牛!  阅读(6195)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示