J'écris une petite application stupide en C++ pour tester une de mes bibliothèques. Je voudrais que l'application affiche une liste de commandes à l'utilisateur, permette à l'utilisateur de taper une commande, puis exécute l'action associée à cette commande. Cela semble assez simple. En C# Je finirais par écrit une liste/carte de commandes comme ceci:Menu texte simple en 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)));
}
Toutes les suggestions sur la façon d'y parvenir en C++? Je ne veux pas vraiment définir des classes/fonctions séparées pour chaque commande. Je peux utiliser Boost, mais pas TR1.
Fermer, mais je dois encore définir des fonctions distinctes exit_me() et aide() ... Y at-il une autre façon? –
Merci. Je vais rester en utilisant des fonctions séparées et attendre que les lambdas de TR1 soient incorporés dans la norme. –
lambdas sera une nouvelle fonctionnalité du prochain C++. vous pourrez faire le menu ["help"] = []() {cout << "ceci est ma petite aide"; } puis. –