シェルをプログラムします。異なるパラメータを持つ関数ポインタ
私は異なるパラメータで異なる機能を持っています。
void func1(void);
void func2(char * x,);
void func3(char * x, string y);
現時点では、文字列とポインタを格納するマップを使用します。
it=list.find("argument");
if(it != list.end())
{
if->second();
}
は、マップ内の異なるパラメータですべての機能を格納することが可能です:ことを私は使用機能を見つけて開始する
typedef map<string,void (*)()> t_list;
map<string,void(*)()>::iterator it;
t_list list;
list["argument1"]=&func1;
?そしてどうやって?
これらの関数をどのように呼び出すのですか?彼らの実際の署名を検査し、それらを提供された議論と一致させることができると期待していますか? –