Я пишу глупое маленькое приложение на C++ для тестирования одной из моих библиотек. Я хотел бы, чтобы приложение отображало список команд для пользователя, позволяло пользователю вводить команду, а затем выполнять действие, связанное с этой командой. Звучит достаточно просто. В С# я бы написал список/карту команд следующим образом:
class MenuItem
{
public MenuItem(string cmd, string desc, Action action)
{
Command = cmd;
Description = desc;
Action = action;
}
public string Command { get; private set; }
public string Description { get; private set; }
public Action Action { get; private set; }
}
static void Main(string[] args)
{
var items = new List<MenuItem>();
items.Add(new MenuItem(
"add",
"Adds 1 and 2",
()=> Console.WriteLine(1+2)));
}
Любые предложения о том, как добиться этого на С++? Я действительно не хочу определять отдельные классы/функции для каждой команды. Я могу использовать Boost, но не TR1.