Mogę użyć __LINE__
jako parametru metody dobrze, ale chciałbym w łatwy sposób użyć go w funkcji, która używa ciągów.Jak mogę użyć stałej czasowej kompilacji __LINE__ w ciągu znaków?
Na przykład, że mam to:
11 string myTest()
12 {
13 if(!testCondition)
14 return logError("testcondition failed");
15 }
I chcę wynikiem funkcji będzie:
"myTest linia 14: testcondition failed"
Jak czy mogę napisać logError? Czy to musi być jakaś monstrualna makra?
Podczas gdy jest to stary wątek, powód, dla którego chciałbyś go użyć jako ciąg, w którym nie można użyć fprintf(). Jedno z takich miejsc znajduje się w procedurze obsługi sygnału, ponieważ fprintf() nie jest bezpieczny do użycia w procedurach obsługi sygnałów, gdy write() jest. – Bob9630