【发布时间】:2013-01-22 14:46:02
【问题描述】:
我不知道我在这个std::all_of 电话中做错了什么。
我有一个班级统计:
class Statistics {
public:
bool isDataSet() const { return m_data.size() > 0; }
private:
std::vector<double> m_data;
};
Statistics 类的每个实例都对应一个特定的对象。
在另一个文件的另一个函数中,我只想在 all Statistics 实例中初始化数据时显示统计信息。我想通过以下方式使用std::all_of函数:
if( std::all_of(m_stats.begin(), m_stats.end(), &Statistics::isDataSet) ) {
...
}
在哪里std::vector<Statistics*> m_stats.
编译器报告错误,因为“谓词项不计算为采用 1 个参数的函数”。据我所知,每个类成员都将这个指针作为第一个参数传递,所以Statistics::isDataSet()实际上应该是一个有1个参数的函数。但是std::all_of 看错了。
我认为 Statistics::isDataSet() 应该被接受为 std::all_of() 中具有 1 个参数的函数是不是错了?
【问题讨论】: