我正在尝试在find_if表达式中访问嵌套类的成员函数。

我下面的代码在绑定(bind)表达式中导致编译错误-(“COuter::innerClass”不是类或 namespace )。

您能帮我正确的绑定(bind)表达式吗?

vector<COuter> vec;

vec.push_back(COuter());

vector<COuter>::const_iterator it =
  find_if(vec.begin(), vec.end(), bind(&COuter::innerClass::GetTemp, _1) == 42);

我的示例类:
class CInner
{
public:
    CInner() : _temp(42) {};

    int GetTemp() const
    {
        return _temp;
    }

private:

    int _temp;
};

class COuter
{
public:
    CInner innerClass;
};

最佳答案

正确的表达式是bind(&CInner::GetTemp, bind(&COuter::innerClass, _1))

关于c++ - 使用boost绑定(bind)访问内部类的成员函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4670307/

10-11 19:10