使用boost bind来访问内部类的成员函数

时间:2011-01-12 15:10:12

标签: c++ boost bind

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

我的代码导致绑定表达式中的编译错误 - ('COuter :: innerClass'不是类或命名空间)。

你能帮我解决正确的绑定表达吗?

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;
};

1 个答案:

答案 0 :(得分:3)

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