我正在尝试在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;
};
答案 0 :(得分:3)
正确的表达是bind(&CInner::GetTemp, bind(&COuter::innerClass, _1))
。