如何使用std :: for_each和boost :: bind调用参数的成员函数?

Mar*_*ram 2 c++ boost stl boost-bind visual-studio-2008

我想使用std :: for_each将一系列字符串添加到组合框中.对象是类型的Category,我需要调用GetName它们.我怎样才能实现这一目标boost::bind

const std::vector<Category> &categories = /**/;
std::for_each(categories.begin(), categories.end(), boost::bind(&CComboBox::AddString, &comboBox, _1);
Run Code Online (Sandbox Code Playgroud)

当前代码在尝试调用时失败CComboBox::AddString(category).这显然是错的.如何CComboBox::AddString(category.GetName())使用当前语法调用?

小智 8

std::for_each(categories.begin(), categories.end(), boost::bind(&CComboBox::AddString, &comboBox, boost::bind(&Category::GetName, _1)));
Run Code Online (Sandbox Code Playgroud)