Boost:bind疑问
kgzhw 2012-07-11 06:21:16 class status {
std::string name_;
bool ok_;
public:
status(const std::string& name):name_(name),ok_(true) {}
void break_it() { ok_=false; }
bool is_broken() const { return ok_; }
void report() const { std::cout << name_ << " is " << (ok_ ? "working nominally":"terribly broken") << '\n'; }
};
void main()
{
std::vector<status> statuses;
statuses.push_back(status("status 1"));
statuses.push_back(status("status 2"));
statuses.push_back(status("status 3"));
statuses.push_back(status("status 4"));
statuses[1].break_it();statuses[2].break_it();
for (std::vector<status>::iterator it=statuses.begin(); it!=statuses.end();++it) { it->report();}
std::for_each( statuses.begin(), statuses.end(), boost::bind(&status::report,_1));
}
report函数是不需要参数的,foreach那句代码中后面“_1”是什么意思?请高手指点一下!