0 votes

La fonction isDefined ?

En C++, existe-t-il une fonction qui renvoie "vrai" lorsque la variable est définie ou faux dans l'autre sens. Quelque chose comme ceci :

bool isDefined(string varName)
{
    if (a variable called "varName" is defined)
      return true;
    else
      return false;
}

0voto

Nick Dandoulakis Points 26809

Il a déjà été mentionné que le C++ ne fournit pas cette possibilité.

D'autre part, il existe des cas où le système d'exploitation met en œuvre des mécanismes fermer a isDefined() ,
comme le Fonction GetProcAddress sous Windows.

0voto

progician Points 148

Pour y parvenir, vous devez d'abord mettre en œuvre un système de gestion dynamique des variables, ou du moins en trouver sur Internet. Comme mentionné précédemment, le C++ est conçu pour être un langage natif, il n'y a donc pas de fonctionnalités intégrées pour cela. Ce que je peux suggérer pour la solution la plus simple est de créer une std::map avec des clés de chaîne stockant les variables globales d'intérêt avec un boost::any, wxVariant ou quelque chose de similaire, et de stocker vos variables dans cette map. Vous pouvez vous rendre la vie un peu plus facile avec une petite directive de préprocesseur pour définir une variable par son nom, ainsi vous n'avez pas besoin de retaper le nom de la variable deux fois. De plus, pour vous faciliter la vie, je vous suggère de créer une petite fonction en ligne qui accède à cette carte de variables et vérifie si la clé de la chaîne donnée est contenue dans la carte. Il existe des implémentations de cette fonctionnalité à de nombreux endroits, les systèmes de gestion des propriétés d'exécution sont disponibles de différentes manières, mais si vous n'avez besoin que de cette fonctionnalité, je vous suggère de l'implémenter vous-même, car la plupart de ces solutions sont assez générales, ce dont vous n'avez probablement pas besoin.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X