关闭

function_bind_lambda

标签: c11
25人阅读 评论(0) 收藏 举报
分类:
#include <iostream>
#include <memory> // shared_ptr
#include <functional>

class A {
public:
    void doit() {
        std::cout << "funck" << std::endl;
    }
    int add(int x, int y) {
         return x + y;
    }
};
//int main() {
//  // auto a = std::make_shared<A>();
//  // same as 
//  std::shared_ptr<A> a(new A);
//  std::function <void(A*)> f(&A::doit); 
//  f(a.get());
//}

//int main() {
//  auto a = std::make_shared<A>();
//  auto func = std::bind(&A::doit, std::placeholders::_1);
//  func(a);
//}

//int main() {
//  // auto a = std::make_shared<A>();
//  // same as 
//  std::shared_ptr<A> a(new A);
//  std::function <int(A*, int, int )> f(&A::add); 
//  std::cout << f(a.get(), 1, 2) << std::endl;
//}

//int main() {
//  auto a = std::make_shared<A>();
//  auto func = std::bind(&A::add, std::placeholders::_1, 1, 2);
//  std::cout << func(a) << std::endl;
//}

int main() {
    auto a = std::make_shared<A>();
    auto f = [a]() {return a->add(3, 4); };
    std::cout << f() << std::endl;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4426次
    • 积分:1161
    • 等级:
    • 排名:千里之外
    • 原创:116篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条