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()
か?