スピードアップを計算するためにさまざまなアルゴリズムをテストしたい (シングルコア、cuda、マルチコア)。関数ヘッダーは次のようになります。
void fraktale_cpu_single(pfc::bitmap * bmp,
pfc::RGB_3_t * color_table,
const par::complex<float> C)
常に同じデータを初期化しなければならないので、関数ポインタを呼び出す関数を 1 つ書きたいと思います。
void do_function_with_pic(
std::function<void(pfc::bitmap * bmp,
pfc::RGB_3_t * color_table,
const par::complex<float> C)> Func,
const string pic_name)
シングルコアとcudaでは問題ありませんが、マルチコアでは問題に取り組んでいるスレッドの量を変更できるようにしたいので、マルチコア関数にはもう1つの引数があります:
void fraktale_cpu_multi(size_t threads,
pfc::bitmap * bmp,
pfc::RGB_3_t * color_table,
const par::complex<float> C)
私はこれを試していました:
do_function_with_pic(bind(fraktale_cpu_multi, 1), "cpu_multi.bmp");
しかし、他の引数が設定されていないため、エラーが発生しました。どうすればよいですか? ・ブーストライブラリも登場!