Param次のように定義されたクラスがあるとしましょう:
class Param {
public:
std::vector<double> lb;
std::vector<double> mid;
std::vector<double> ub;
int level;
};
このクラスの目的は、下限と上限 (それぞれ と )、およびさまざまなパラメーターの中間推定値を定義するlbことubです。lb与えられたオブジェクトに対して、 、mid、およびubが同じ数の要素を持つと仮定します。
さて、もし なら、見積もりlevel<0を使いたいです。lbなら見積もりlevel==0を使いたい。midそれ以外の場合 (の場合)、見積もりlevel>0を使用したい。ub
私の質問はstd::vector<double>:の値に基づいて適切なメンバーに自動的に「パススルー」する単一のメンバー関数 (または参照メンバー変数に似たもの) を作成するにはどうすればよいlevelですか?
たとえば、関数がある場合
void f(const std::vector<double>& X);
また
void g(std::vector<double>& X);
私はこのようなことができるようにしたい:
Param myParam;
// set values of myParam.lb, myParam.mid, and myParam.ub, and myParam.level
f(myParam.__?__);
g(myParam.__?__);