Zum Hauptinhalt springen
ai-slop/cpp-using-namespace-std-in-headermanuelle Behebung

using namespace std im Header.

`using namespace std;` in einer Header-Datei. Jede Datei, die den Header einbindet, erbt den kompletten `std`-Namespace samt der zugehörigen Namenskonflikte.

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-using-namespace-std-in-header.cpp
✗ Beanstandet
// report.hpp
#pragma once
#include <string>
#include <vector>

using namespace std;

string render(const vector<string>& lines);
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet Zeilen, die in `.h`-, `.hh`-, `.hpp`- und `.hxx`-Dateien mit `using namespace std;` beginnen.

cpp-using-namespace-std-in-header.cpp
✓ Sauber
// report.hpp
#pragma once
#include <string>
#include <vector>

std::string render(const std::vector<std::string>& lines);
Was sich geändert hat

Qualifiziere Namen in Headern mit `std::`. Wenn du die Direktive willst, setz sie in eine `.cpp`-Datei oder in eine Funktion.

Agenten fügen die Direktive ein, um sich das Tippen von `std::` zu sparen, ohne zwischen Header und Implementierungsdatei zu unterscheiden.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/cpp-using-namespace-std-in-header

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet Zeilen, die in `.h`-, `.hh`-, `.hpp`- und `.hxx`-Dateien mit `using namespace std;` beginnen.

Legitimer Code, der NICHT beanstandet wird

Die Direktive in `.cpp`/`.cc`-Implementierungsdateien und eng gefasste using-Deklarationen wie `using std::string;` 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.