次のような複数のフィールドを含むstd::vector
ofがあります。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
。どうすれば正しく実装できますか?