Ein Kollege von mir über einen unserer ererbten Codebasen gesucht und gefunden die folgende Zeile:Was ist dieses String-Literal im booleschen Ausdruck idiom?
ATLASSERT(rtaddress == m_lRTAddress && "Creation settings should match FIFO");
Wir verstehen nicht, was der Zweck der Zeichenfolge für wörtliche ist; ist es für mehr als nur kommentieren? So wie ich es sehe, wenn rtaddress
nicht gleich m_lRTAddress
ist, dann wird die Zeichenkette niemals wegen Kurzschlüssen ausgewertet. Wenn rtaddress
gleich m_lRTAddress
ist, dann wird das String-Literal ausgewertet, aber ein String-Literal, das für einen booleschen Ausdruck ausgewertet wird, gibt immer true
zurück; also, was ist der Punkt?
Es ist ein Trick, diese Zeichenfolge im Dialogfeld "Assert" angezeigt zu bekommen. Selbstdokumentierende Warnmeldung –
Es ist eine verwerfliche Verschwendung von Raum und ist auch Obskurantismus. Verwenden Sie einen Kommentar. Die Assertion Failure Nachricht wird Sie auf die Quellcodezeile verweisen (zumindest wird es, wenn ein ATLASSERT wie eine Standard-Assert ist). – dave