Zum Hauptinhalt springen
ai-slop/cpp-endl-in-streammanuelle Behebung

std::endl im Stream.

`<< std::endl` als Zeilenumbruch. Es flusht den Stream außerdem jedes Mal, was in Schleifen und bei Dateiausgabe teuer ist.

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-endl-in-stream.cpp
✗ Beanstandet
void write_report(std::ostream& out, const std::vector<Row>& rows) {
    for (const auto& row : rows) {
        out << row.name << ',' << row.total << std::endl;
    }
}
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet `<< std::endl` in C++-Dateien außerhalb von Kommentaren und Strings.

cpp-endl-in-stream.cpp
✓ Sauber
void write_report(std::ostream& out, const std::vector<Row>& rows) {
    for (const auto& row : rows) {
        out << row.name << ',' << row.total << '\n';
    }
    out.flush();
}
Was sich geändert hat

Schreib `'\n'` und flushe explizit mit `std::flush` nur dort, wo die Ausgabe sofort erscheinen muss.

Tutorial-Code beendet jede Zeile mit `std::endl`, also tun Agenten das auch, ohne den Flush zu brauchen.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/cpp-endl-in-stream

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet `<< std::endl` in C++-Dateien außerhalb von Kommentaren und Strings.

Legitimer Code, der NICHT beanstandet wird

`'\n'`-Zeilenumbrüche, explizites `std::flush`, unqualifiziertes `endl` und `.c`/`.h`-Dateien 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.