ライブラリの 1 つをテストするために、C++ でばかげた小さなアプリを作成しています。アプリでコマンドのリストをユーザーに表示し、ユーザーがコマンドを入力できるようにしてから、そのコマンドに関連付けられたアクションを実行したいと考えています。シンプルに聞こえます。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)));
}
C++ でこれを達成する方法について何か提案はありますか? コマンドごとに個別のクラス/関数を定義したくありません。Boost は使えますが、TR1 は使えません。