Ich kann __LINE__
als Methodenparameter einfach verwenden, aber ich möchte eine einfache Möglichkeit, es in einer Funktion, die Zeichenfolgen verwendet.Wie kann ich die Kompilierzeitkonstante __LINE__ in einem String verwenden?
Zum Beispiel sagen, ich habe dies:
11 string myTest()
12 {
13 if(!testCondition)
14 return logError("testcondition failed");
15 }
Und ich möchte das Ergebnis der Funktion sein:
"myTest Linie 14: testcondition fehlgeschlagen"
Wie kann ich logError schreiben? Muss es eine Monstrosität eines Makros sein?
Dies ist ein alter Thread, ein Grund, warum Sie wollen, dass es als eine Zeichenfolge als Instanzen, wo Sie nicht fprintf() verwenden können. Ein solcher Ort befindet sich in einem Signal-Handler, da fprintf() für die Verwendung in Signal-Handlern nicht sicher ist, während write() dies ist. – Bob9630