私は、テンプレートパラメータが整数であるテンプレート関数を持っています。私のプログラムでは、実行時に決定される小さな整数で関数を呼び出す必要があります。手で、私は例えば、テーブルを作成することができます任意の順番に、このテーブルを構築するためのいくつかの自動的な方法があるかどうC++のテンプレート関数への呼び出しテーブルの構築
void (*f_table[3])(void) = {f<0>,f<1>,f<2>};
と
今f_table[i]();
と私の関数を呼び出す、疑問があります。私が思い付くことができる最高はleastsのことを回避するに何度も関数名を繰り返しマクロ
#define TEMPLATE_TAB(n) {n<0>,n<1>,n<2>}
(私の本当の機能は、「F」よりも長い名前を持っている)を使用することです。ただし、許容される最大注文はまだハードコードされています。理想的には、テーブルのサイズはコード内の単一のパラメータによってのみ決定されるべきです。テンプレートを使用してこの問題を解決することは可能でしょうか?
ハード最適化のためにこれを行うとします。小さな整数で作業する場合、解はvoid f(int i)をコード化することができます。テンプレートの代わりに void f();あなたのニーズにお応えできますか? –
neuro