Comment puis-je utiliser la compilation constante de temps de l' _LIGNE ___ dans une chaîne de caractères?

Je peux utiliser __LINE__ comme un paramètre d'une méthode, mais je voudrais un moyen facile de l'utiliser dans une fonction qui utilise des chaînes de caractères.

Par exemple dire j'ai ceci:

11    string myTest()
12    {
13     if(!testCondition)
14       return logError("testcondition failed");
15    }

Et je veux le résultat de la fonction:

"myTest ligne 14: testcondition a échoué"

Comment puis-je écrire logError? A-t-elle être une monstruosité d'une macro?

OriginalL'auteur Mr. Boy | 2010-04-19