Zum Hauptinhalt springen
ai-slop/cpp-null-literalmanuelle Behebung

NULL statt nullptr.

Das `NULL`-Makro in C++-Code. Es ist eine verkappte Integer-Konstante und kann deshalb die falsche Überladung auswählen, wo `nullptr` das nicht kann.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

cpp-null-literal.cpp
✗ Beanstandet
Node* find(Node* head, int key) {
    for (Node* node = head; node != NULL; node = node->next) {
        if (node->key == key) return node;
    }
    return NULL;
}
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet das Token `NULL` in C++-Dateien außerhalb von Kommentaren und Strings.

cpp-null-literal.cpp
✓ Sauber
Node* find(Node* head, int key) {
    for (Node* node = head; node != nullptr; node = node->next) {
        if (node->key == key) return node;
    }
    return nullptr;
}
Was sich geändert hat

Verwende `nullptr`.

Beispiele in C und aus der Zeit vor C++11 verwenden überall `NULL`, und Agenten schleppen es in modernes C++ ein.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/cpp-null-literal

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet das Token `NULL` in C++-Dateien außerhalb von Kommentaren und Strings.

Legitimer Code, der NICHT beanstandet wird

`.c`- und `.h`-Dateien, `nullptr` und Bezeichner, die NULL lediglich enthalten, werden nicht beanstandet.

Belege

Teil von aislops C/C++-Regelsatz. Die C/C++-Unterstützung, einschließlich C/C++-spezifischer AI-Slop-Regeln, kam mit aislop v0.14.1.