今回は、関数ポインタに近いかもしれない質問です。
このような関数の内部です。
void CTaskMap::RunTheTask()
{
map<string, string>::iterator it;
it = m_Maps->begin();
while( it != m_Maps->end() )
{
//関数名はAddObjectという関数で、
//stringと同名でmapのsecondに登録してあります
//この部分でstring型を関数みたいに使いたいのです。
//(*it).second() のような感じです。
//実行できないのは知っていますが(笑)
it++;
}
}
#define RunTheFunc(name) (name##(##)) のような事も考えたのですが、
「引数が0個は評価できません」と出てダメなんです。
やはり、関数ポインタでしか出来ないのでしょうか?
どうやったら、実行できるかご教授お願いします。
実行環境 VC++2008 WindowsXP
