まりま

個人的備忘録 MyReferenceManual

C++で関数テーブルを作る

 条件に合わせて行う処理を切り替える時、ただ単に分岐するよりも関数テーブルを作ってそれを利用したほうが可読性が増します。しかし、ポインタを弄ったりして関数テーブルを作るのは意外と骨が折れます。ここではC++11の機能を使ってお手軽に実装できる関数テーブルを紹介します。

 これだけのコードで関数テーブルが実装できます。クラス内でメンバ関数を登録する場合は

functionTable["foo"]=std::bind(&Classname::Funcname,this,std::placeholders::_1;

とstd::bindの中身を書き換えてやると良いです。