【发布时间】:2010-03-22 15:29:04
【问题描述】:
鉴于这个类:
class C
{
private:
struct Foo
{
int key1, key2, value;
};
std::vector<Foo> fooList;
};
这里的想法是fooList 可以被Foo 结构的key1 或key2 索引。我正在尝试编写函子以传递给std::find_if,以便我可以通过每个键查找fooList 中的项目。但我无法让它们编译,因为Foo 在类中是私有的(它不是 C 接口的一部分)。 有没有办法在不将Foo 暴露给世界其他地方的情况下做到这一点?
这是一个无法编译的代码示例,因为 Foo 在我的班级中是私有的:
struct MatchKey1 : public std::unary_function<Foo, bool>
{
int key;
MatchKey1(int k) : key(k) {}
bool operator()(const Foo& elem) const
{
return key == elem.key1;
}
};
【问题讨论】:
标签: c++ nested private functor