コード内でc
ライブラリを使用していc++
ます。彼らAPI
は私が特定の署名で特定の関数ポインタを渡すことを要求します。次のようなものだとしましょう。
typedef int (*api_fun_t)(int);
私ができるようにしたいのは、実行時に決定される特定のパラメーターに依存する関数ポインターを渡すことです。最初に、次のようなものを定義することを考えました。
api_fun_t my_specialized_fun(int param){
int fun(int x){
// decide what to do based on param
}
return fun;
}
しかし、問題c++
はネストされた関数定義を許可しません。次に、次のようなテンプレートを使用してこれを達成できると考えました
template <int param>
fun (int x){
//decide what to do based on param
}
グローバルおよび/または静的変数を含まないこれを行う他の方法はありますか?