Cette question fait référence à la question suivante posée : Utiliser une map STL de pointeurs de fonction
En C++11, j'utilise une map pour stocker une paire afin d'exécuter plus efficacement du code au lieu d'utiliser des if...else if...else if
comme mentionné dans le lien de référence.
Le code est encapsulé dans une fonction membre, où this
fait référence à la classe, permettant l'accès aux variables membres.
utilisation de f = std::function;
const static std::map doSumthin {
{"cas 1", [this]() {
// exécuter le code dans le cas 1
}},
{"cas 2", [this]() {
// exécuter le code dans le cas 2
}},
…
};
auto it = doSumthin.find(someString);
if (it != doSumthin.end())
{
it->second();
}
Cependant, je dois faire fonctionner la base de code dans VS 2008. Je ne suis pas sûr de la manière la plus optimale de reproduire le code ci-dessus pour qu'il fonctionne dans VS 2008 sans revenir à l'approche moins efficace des if...else if
.
Puis-je obtenir des conseils concernant ce problème ?