これは以前にも尋ねられたと思いますが、検索するのが難しいだけです...だから、私が持っているのは関数ポインタを受け入れる関数です。この関数ポインタには、たとえば 3 つの引数があります。したがって、同じポインターを別の関数に渡したいのですが、2 つの引数が入力されています。
したがって、次のようなものです。
int func1 (int (*funcptr)(int, int, int)) {
return func2(funcptr(,8,9));
}
int func2 (int (*funcptr)(int)) {
return (*funcptr)(2);
}
編集:わかりましたので、ラムダを使用してこれを取得しました
int func2(int (*funcptr2)(int)) {
return (*funcptr2)(2);
}
int func1(int (*funcptr1)(int, int, int)) {
return func2(
[funcptr1](int i)->int {
return (*funcptr1)(i,8,9);
}
);
}
しかし、それは私に与えています
"引数 1 を にfunc1(int (*)(int, int, int))::<lambda(int)>
変換できません"int (*)(int)
int func2(int (*)(int))