#include <iostream>
#include <vector>
#include <functional>
void greet(const std::string& name, const std::string& greeting) {
std::cout << greeting << ", " << name << "!" << std::endl;
}
class A {
public:
void Work() {
greeters_.push_back(std::bind(&A::greet, std::placeholders::_1, "Hello"));
greeters_.push_back(std::bind(&A::greet, std::placeholders::_1, "Goodbye"));
}
void greet(const std::string& name, const std::string& greeting) {
std::cout << greeting << ", " << name << "!" << std::endl;
}
std::vector<std::function<void(const std::string&)>> greeters_;
};
int main() {
std::vector<std::function<void(const std::string&)>> greeters;
greeters.push_back(std::bind(greet, std::placeholders::_1, "Hello"));
greeters.push_back(std::bind(greet, std::placeholders::_1, "Goodbye"));
for (const auto& greeter : greeters) {
greeter("Alice");
}
return 0;
}