Visual C++ équivalent d' __FILE__ , __LINE__ et __ _ _ JOLI_FONCTION__
Compilateur GCC me donne les macros suivantes:
__FILE__
afin que je puisse imprimer le nom de fichier + répertoire.__LINE__
afin que je puisse imprimer le numéro de ligne de l'endroit où je suis d'impression.__PRETTY_FUNCTION__
afin que je puisse imprimer le joli nom de la fonction
Visual C++ ont l'équivalent de ces macros? D'un côté de la question est, sont-ils la norme pour les compilateurs C++?
Pour les personnes qui veulent en savoir plus sur ces macros: gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/Function-Names.html et gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
OriginalL'auteur sivabudh | 2010-12-13
Vous devez vous connecter pour publier un commentaire.
Dans VS2008, ce:
imprime ceci:
(Le numéro de la ligne est "mal" car il y avait vraiment quelques trucs supplémentaires en haut de mon fichier.)
OriginalL'auteur Leo Davidson
__FILE__
et__LINE__
sont la norme, et je suis plutôt certains compilateurs Microsoft ont essentiellement toujours eu.__PRETTY_FUNCTION__
est un gcc fonctionnalité.OriginalL'auteur aschepler
Pour plus de portabilité dans l'obtention de l'actuel nom de la fonction, vous pouvez essayer de BOOST_CURRENT_FUNCTION.
OriginalL'auteur Fred Larson
Oui Visual C++ a ou de niveau équivalent. Voir les réponses ici:
Quelle est la différence entre __JOLI_FONCTION__, __FUNCTION__, __func__?
la fonction func/4384860#4384860
Également de noter que, malgré les majuscules utilisés, ils ne sont pas les macros. Ils sont variables.
hmmm ... selon la gcc docs ils sont variables. Ressemble VC++ implémente les choses différemment.
OriginalL'auteur sashang
__FILE__
et__LINE__
sont la norme depuis C89.__PRETTY_FUNCTION__
est un GCCism.__func__
est un C99ism qui, contrairement à GCCisms) peut très bien être disponible dans Visual C++, il n'est pas exactement le même que__PRETTY_FUNCTION__
mais il peut être assez près à vos besoins.OriginalL'auteur zwol
Je sais que MSVC offre
__FILE__
et__LINE__
, deux qui sont la Norme de macros. Ils offrent également__FUNCTION__
, je crois que c'est ce que vous cherchez,OriginalL'auteur Puppy
Oui, Microsoft Visual Studio a
__FILE__
et__LINE__
. Voici plus de MSVC macros.Les deux sont la norme ANSI C++.
MSVC a
__FUNCTION__
, qui est spécifique à Microsoft.OriginalL'auteur EboMike