Compilerwarnung (Ebene 4, deaktiviert) C5240
'attribut-string': Das Attribut wird an dieser syntaktischen Position ignoriert.
Hinweise
Warnung C5240 tritt auf, wenn ein oder [[maybe_unused]]
ein [[nodiscard]]
Attribut in der falschen syntaktischen Position gefunden wird. Das Attribut in dieser syntaktischen Position gilt beispielsweise [[nodiscard]]
für die decl-specifier-seq
Funktion , nicht für die Funktion f
:
static [[nodiscard]] int f() { return 1; }
Vor Visual Studio 2019, Version 16.10, würde der Compiler die Verwendung eines [[nodiscard]]
oder [[maybe_unused]]
Attributs in einer syntaktischen Position ignorieren, die nicht auf die deklarierte Funktion oder das Objekt angewendet wurde. In Visual Studio 2019, Version 16.10 und höher, gibt der Compiler stattdessen die Standardmäßige Warnung C5240 aus. Weitere Informationen zum Aktivieren dieser Warnung finden Sie unter Compilerwarnungen, die standardmäßig deaktiviert sind.
Beispiel
Das folgende Beispiel zeigt, wie Warnung 5240 auftreten kann:
// c5240.cpp
// Compile using: cl /EHsc /W4 /std:c++17 /permissive- /c c5240.cpp
#pragma warning( default: 5240 )
static [[nodiscard]] int f() { return 1; } // C5240
Um dieses Problem zu beheben, verschieben Sie das Attribut an die richtige syntaktische Position:
// c5240_fixed.cpp
// Compile using: cl /EHsc /W4 /std:c++17 /permissive- /c c5240_fixed.cpp
#pragma warning( default: 5240 )
[[nodiscard]] static int f() { return 1; } // OK
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für