Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Attribute-string: atribut se v této syntaktické pozici ignoruje.
Poznámky
Upozornění C5240 nastane v případě, že [[nodiscard]] [[maybe_unused]] je atribut nalezen v nesprávné syntaktické pozici. Například [[nodiscard]] atribut v této syntaktické pozici se vztahuje na decl-specifier-seq, nikoli na funkci f:
static [[nodiscard]] int f() { return 1; }
Před sadou Visual Studio 2019 verze 16.10 by kompilátor bezobslužně ignoroval použití [[nodiscard]] nebo [[maybe_unused]] atributu v syntaktické pozici, která se nevztahuje na deklarovanou funkci nebo objekt. V sadě Visual Studio 2019 verze 16.10 a novější kompilátor místo toho generuje upozornění C5240 mimo výchozí úroveň 4. Další informace o povolení tohoto upozornění najdete v tématu Upozornění kompilátoru, která jsou ve výchozím nastavení vypnutá.
Příklad
Následující příklad ukazuje, jak může dojít k upozornění 5240:
// 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
Pokud chcete tento problém vyřešit, přesuňte atribut na správnou syntaktickou pozici:
// 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