Можно ли хранить указатели на различные гетерогенные функции, такие как:
В заголовке:
int functionA (int param1);
void functionB (void);
В основном это будет часть, которую я не знаю, как написать:
typedef ??boost::function<void(void)>?? functionPointer;
И потом:
map<char*,functionPointer> _myMap;
В .cpp
void CreateFunctionMap()
{
_myMap["functionA"] = &functionA;
_myMap["functionB"] = &functionB;
...
}
И затем использовать его как:
void execute(int argc, char* argv[])
{
if(argc>1){
int param = atoi(argv[1]);
int answer;
functionPointer mfp;
mfp = map[argv[0]];
answer = *mfp(param);
}
else{
*map[argv[0]];
}
}
и т. Д.
Спасибо
- РЕДАКТИРОВАТЬ -
Просто чтобы дать больше информации:
ПричинаЭтот вопрос заключается в том, что я реализую раскрывающуюся консоль в стиле quake для уже существующего приложения.Таким образом, я могу обеспечить пользовательский ввод во время выполнения командной строки для доступа к различным уже кодированным функциям различных типов, например:
/exec <functionName> <param1> <param2> ...