Zum Hauptinhalt springen
ai-slop/cpp-iostream-leftovermanuelle Behebung

iostream-Überbleibsel.

`std::cout` oder `std::cerr` in Bibliothekscode. Meist Debug-Ausgabe, die mit ausgeliefert wurde.

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-iostream-leftover.cpp
✗ Beanstandet
Matrix Matrix::inverse() const {
    std::cout << "inverting " << rows_ << "x" << cols_ << "\n";
    Matrix result = decompose();
    std::cerr << "det=" << determinant() << "\n";
    return result;
}
Warum das anschlägt

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `std::cout` und `std::cerr` in C- und C++-Dateien, die kein `int main(` definieren.

cpp-iostream-leftover.cpp
✓ Sauber
Matrix Matrix::inverse() const {
    if (determinant() == 0.0) {
        throw SingularMatrixError(rows_, cols_);
    }
    return decompose();
}
Was sich geändert hat

Entferne die Debug-Ausgabe oder leite sie über die Logging-Komponente des Projekts.

Agenten geben Zwischenwerte aus, um ihre Arbeit zu prüfen, und lassen die Stream-Ausgaben zurück. In einer Bibliothek landen sie in dem stdout, das der Host-Prozess gerade hat.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/cpp-iostream-leftover

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich auf maskiertem Quelltext: beanstandet `std::cout` und `std::cerr` in C- und C++-Dateien, die kein `int main(` definieren.

Legitimer Code, der NICHT beanstandet wird

Dateien mit `main`, Testdateien, Ausgaben über eine Logging-Komponente und unqualifiziertes `cout` nach einer using-Direktive 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.