C4503 Warnungen? Wie löse / beseitige ich sie?

8

Es ist mein erstes Mal, C ++ STL auszuprobieren. Ich versuche ein multidimensionales assoziatives Array mit map zu erstellen. Zum Beispiel:

%Vor%

Beim Kompilieren des obigen Codes in VS2005 habe ich 170 C4503-Warnungen erhalten. Alle Warnungen beziehen sich auf "Überschriebene Namenslänge überschritten, Name wurde abgeschnitten". Das Programm scheint jedoch gut zu laufen.

Wer möchte mir etwas Zeit lassen, um mir zu erklären, was diese Warnungen verursacht hat und wie löse ich sie? Vielen Dank im Voraus:)

%Vor%     
justin 22.10.2010, 06:43
quelle

4 Antworten

7

Wenn Sie beabsichtigen, dieses Monster mit einer Datenstruktur zu behalten, können Sie nur wenig über die Warnung tun, außer es zu deaktivieren:

%Vor%     
Benjamin Lindley 22.10.2010, 06:57
quelle
8

Ich bin kein Fan davon, die Warnung zu deaktivieren, denn nach meinen Recherchen könnte es unbeabsichtigte Konsequenzen aufgrund dieser Warnung geben, also ziehe ich es vor, wirklich auf das Problem zu verzichten.

So würde ich den Code umschreiben:

%Vor%

und du könntest es so benutzen:

%Vor%

Meine Bedenken und die ultimative Lösung stammen hauptsächlich von MSDN .

    
Nick Ligerakis 26.02.2014 20:42
quelle
5

Andere haben vorgeschlagen, wie Sie die Warnung deaktivieren können. Ich schlage vor, dass Sie stattdessen Ihr Design überdenken. Verwenden Sie etwas mehr Abstraktion als map ^ 5. Oder ändern Sie die Datenstruktur des Speichers. Z.B. Benutze map anstelle von map ^ 5.

Aktualisiert:

Was ich meine ist, dass Sie im Grunde zwei Möglichkeiten haben:

  • Sie verwenden einen Schlüssel mit so vielen Strings / Ebenen, wie Sie benötigen:

    struct Key3 { std::string x, y, z; }; typedef std::map<Key3, DA*> MyMap;

  • Oder Sie erstellen etwas generisches, wobei jede Ebene entweder den DA * -Wert und / oder eine andere Ebene enthalten kann.

wilx 22.10.2010 11:30
quelle
-3

Deklarieren Sie so (achten Sie auf fertige Zitate)

%Vor%

C ++ erkennt >> als Verschiebungsoperator.

    
StNickolay 22.10.2010 07:31
quelle

Tags und Links