Zum Hauptinhalt springen
ai-slop/cpp-manual-deletemanuelle Behebung

Manuelles delete.

Ein rohes `delete` oder `delete[]` auf einen Pointer. Ownership wird von Hand verwaltet, also führt ein frühes return oder eine Exception zwischen `new` und `delete` zu einem Leak, und ein zweites `delete` ist undefiniertes Verhalten.

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-manual-delete.cpp
✗ Beanstandet
void process(const Request& request) {
    Parser* parser = new Parser(request.body());
    if (!parser->valid()) {
        return;  // leaks parser
    }
    handle(parser->result());
    delete parser;
}
Warum das anschlägt

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `delete` oder `delete[]` gefolgt von einem Ausdruck in C- und C++-Dateien.

cpp-manual-delete.cpp
✓ Sauber
void process(const Request& request) {
    auto parser = std::make_unique<Parser>(request.body());
    if (!parser->valid()) {
        return;
    }
    handle(parser->result());
}
Was sich geändert hat

Verwalte die Ressource mit `std::unique_ptr` (über `std::make_unique`) oder einem Container wie `std::vector`, damit sie automatisch freigegeben wird.

Agenten bilden die `new`/`delete`-Paare älterer C++-Beispiele nach, statt moderne Ownership-Typen zu verwenden.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/cpp-manual-delete

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `delete` oder `delete[]` gefolgt von einem Ausdruck in C- und C++-Dateien.

Legitimer Code, der NICHT beanstandet wird

Gelöschte Funktionen (`= delete;`) und Speicher, der über `std::unique_ptr`, `std::shared_ptr` oder Standard-Container verwaltet wird, werden nicht beanstandet.

Belege

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