我不知道我在这个电话中做错了什么std::all_of
。
我有一堂统计课:
class Statistics {
public:
bool isDataSet() const { return m_data.size() > 0; }
private:
std::vector<double> m_data;
};
Statistics 类的每个实例都对应一个特定的对象。
在另一个文件中的另一个函数中,我只想在所有 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()
应该被接受为具有 1 个参数的函数std::all_of()
?