#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;
}
function_bind_lambda
最新推荐文章于 2024-08-01 12:00:58 发布