我正在尝试在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/