コンパイル時の定数パラメーターに応じて、次のような同じコードを作成する必要があります。
map["text 0"] = vec[0];
map["text 1"] = vec[1];
...
map["text n"] = vec[n];
n
問題は、コードを書いているときにわからないことです。テンプレート パラメーターとして受け取ります。明らかな解決策は、1 つ"text k"
のループを使用し、ループ内で を生成して を使用するvec[k]
ことですが、コンパイル時に実行する必要がある場合、実行時のオーバーヘッドが発生します。別の解決策は、関数をさまざまなN
値に特化することですが、この方法では同じコードを何度も手作業で記述する必要があり、テンプレートにする理由はありません。
同様のことを N 回繰り返すことができるいくつかのスマート マクロ (BOOST_PP_REPEAT
マクロ ファミリなど) があることは知っていますが、特定の問題に対する 1 つの解決策が見つかりません。
この問題の解決策はありますか?