Y at-il un moyen d'obtenir la ligne courante dans le fichier source que vous êtes, comme __LINE__
fait dans C++?Prendre la ligne actuelle du fichier source dans D
5
A
Répondre
9
Eh oui, vous pouvez utiliser __LINE__
. En outre, __FILE__
.
Comme BCS et Jonathan M Davis soulignez dans les commentaires, il y a un cas particulier pour __LINE__
et amis: quand il est utilisé comme valeur par défaut d'un argument ou une fonction modèle, ils décident de l'emplacement de l'appelant, pas la signature du modèle ou de la fonction. C'est génial pour sauver les appelants de devoir fournir cette information.
void myAssert(T)(lazy T expression, string file = __FILE__, int line = __LINE__)
{
if (!expression)
{
// Write the caller location
writefln("Assert failure at %s:%s", file, line);
}
}
Questions connexes
- 1. à la recherche d 'outils open source
- 2. Ajouter une ligne actuelle dans la table
- 3. Comment trouver la position de ligne actuelle du pointeur de fichier dans C?
- 4. Comment prendre la clé actuelle de la matrice? PHP
- 5. Add-in Visual Studio pour prendre en charge les images en ligne avec la source?
- 6. Ouvrir une nouvelle ligne sous la ligne actuelle dans Xcode
- 7. Comment ne prendre que la première ligne du texte multiligne
- 8. DataGrid - Affichage du total cumulé du haut de la grille dans la ligne actuelle
- 9. Ligne actuelle Vimdiff compare
- 10. Comment supprimer la ligne actuelle de la table dans jQuery?
- 11. Numéro de version du fichier dans la source avec Vault
- 12. Pouvez-vous prendre la source d'une application déployée par tomcat?
- 13. Organisation du fichier source Python
- 14. Comment identifier la ligne actuelle dans un formulaire tabulaire Apex?
- 15. Y a-t-il des projets open source dans D?
- 16. pascal gratuit, tdbgrid, ligne actuelle
- 17. ASP.Net obtenir numéro de ligne dans le fichier source
- 18. Lecture du fichier jusqu'à la ligne vide
- 19. VB.NET Lire la ligne actuelle dans une zone de texte?
- 20. Comment puis-je supprimer la ligne actuelle dans Emacs?
- 21. Tracer la ligne source d'une erreur dans un eval Javascript
- 22. Définition du nom du fichier journal d'erreur dans apache pour inclure la date actuelle
- 23. Prendre une chaîne aléatoire à partir du fichier texte Cocoa?
- 24. Incluant la source dans le fichier archive
- 25. WPF TwoWay Lier à la source actuelle avec Convertisseur?
- 26. Perl: remplacer le motif de la position actuelle jusqu'à la fin d'une ligne
- 27. Comment supprimer la dernière ligne du fichier dans Ruby?
- 28. sed + éliminent chaîne uniquement dans la dernière ligne du fichier
- 29. Comment changer la couleur du texte de la ligne de commentaires dans un fichier batch
- 30. Regex quiz du jour: D
Parfait, merci. Je savais qu'ils ne devaient pas aller changer tous les numéros de ligne dans les lignes d'exception quand ils ont modifié un fichier std lib :) –
FWIW: '__LINE__' est pas exactement les mêmes que dans C. Il y a au moins un cas d'angle où c'est différent: s'il est utilisé comme valeur par défaut pour un argument, il se résout à la ligne qui fait l'appel et non à la ligne où la fonction est définie. – BCS
Ce qui est * vraiment * utile lors de la création de fonctions de test où vous voulez que les échecs signalent la ligne de l'appel plutôt que dans la fonction de test. –