次のような複数のフィールドを含むstd::vectorofがあります。struct
struct stats
{
double mean;
double median;
double rms;
};
std::vector<stats> data;
で動作する関数を設計したいと思いvectorます。たとえば、ヒストグラムを作成します。structこの関数が動作する必要がある s のどのフィールドを指定できるようにしたいと思います。例えば:
build_histogram(data, get_mean);
build_histogram(data, get_median);
build_histogram(data, get_rms);
stats次のように、クラスにいくつかのゲッターを実装しようとしました。
struct stats
{
double mean;
double median;
double rms;
struct get_mean { double operator() () { return mean; };
struct get_median { double operator() () { return median; };
struct get_rms { double operator() () { return rms; };
};
しかし、それは非静的メンバーmean、medianおよびの無効な使用であると述べていますrms。どうすれば正しく実装できますか?