Derleyici Uyarısı (düzey 4, kapalı) C5240
'attribute-string': özniteliği bu sağlam konumda yoksayıldı
Açıklamalar
Uyarı C5240, bir [[nodiscard]]
veya [[maybe_unused]]
özniteliği yanlış bozulmamış konumda bulunduğunda oluşur. Örneğin, [[nodiscard]]
bu dizimsel konumdaki öznitelik işlevine decl-specifier-seq
f
değil, öğesine uygulanır:
static [[nodiscard]] int f() { return 1; }
Visual Studio 2019 sürüm 16.10'undan önce, derleyici bildirilmekte olan işleve veya nesneye uygulanmayan söz dizimsel bir konumdaki [[maybe_unused]]
veya özniteliğinin kullanımlarını [[nodiscard]]
sessizce yoksayar. Visual Studio 2019 sürüm 16.10 ve sonraki sürümlerinde, derleyici bunun yerine varsayılan düzey 4 uyarısı C5240'ı yayar. Bu uyarıyı etkinleştirme hakkında daha fazla bilgi için bkz . Varsayılan olarak kapalı olan derleyici uyarıları.
Örnek
Aşağıdaki örnekte 5240 uyarısının nasıl gerçekleşebileceği gösterilmektedir:
// 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
Bu sorunu düzeltmek için özniteliğini doğru söz dizimsel konuma taşıyın:
// 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