Question

Existe-t-il un moyen (normalisé) d’obtenir le nom de la méthode actuelle en utilisant c ++?

En utilisant GNU GCC, vous pouvez le faire en utilisant les macros __ FUNCTION __ et __ PRETTY_FUNCTION __ (entouré de 2 caractères de soulignement), mais il est bien entendu non portable. Existe-t-il un moyen de le faire en standard c ++ ou de le rendre portable?

Était-ce utile?

La solution

L'identificateur __ func __ fait partie de la norme C99 et figure dans le brouillon C ++ 0x.

L'identifiant __ func __ est déclaré implicitement par le compilateur comme si les éléments suivants se trouvaient au tout début de chaque corps de fonction:

static const char __func__[] = "function-name";

nom-fonction est une chaîne définie par l'implémentation fournie automatiquement par le compilateur.

Jusqu'à ce que le support de ces normes soit disponible (ou plus largement disponible), vous êtes bloqué par un gunk spécifique au compilateur.

Autres conseils

Non ...... mais certaines choses finissent par être des normes non standard!

voir http://msdn.microsoft.com /en-us/library/b0084kay(VS.80).aspx qui décrit les éléments standard ANSI, puis les microsof qui incluent FUNCTION

.

Non, il n'est pas pris en charge par la norme c ++.

Cela s'appelle "introspection". et il n'y a pas une telle chose dans les normes c ++. Vous devriez utiliser une bibliothèque externe (boost, je pense, la soutient d'une manière ou d'une autre). Mais essayez de savoir si la raison de l’utiliser est vraiment bonne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top