3つの引数を取る関数があります。他の関数のベクトル、void *、および引数の任意のリスト。この関数は、void *と任意の引数のリストを、関数が処理するリスト内の各関数に渡すように設計されています。これが私が欲しいものの例です:
typedef void (*fptr)(const void* userdata, ...);
void execute_all(vector<fptr> funcs, void* userdata, ...){
for (int i = 0;i<funcs.size();i++){
fptr func = funcs[i];
//execute func with userdata and ... from above.
//like (*func)(userdata, ...); which obviously doesnt work
}
}
すべての引数を各関数に転送する方法を知る必要があります。互換性の確保について心配する必要はありません。私はそれを他の場所で扱います。
ありがとう