Aracılığıyla paylaş


Uyarı C26457

(void) dönüş değerlerini yoksaymak için kullanılmamalıdır, bunun yerine 'std::ignore =' kullanın (es.48)

Açıklamalar

C++ Çekirdek Kılavuzu ES.48'den alıntı:

Dönüş değerini yoksaymak [[nodiscard]] için hiçbir zaman 'a (void) dönüştürmeyin. Böyle bir sonucu kasıtlı olarak atmak istiyorsanız, önce bunun gerçekten iyi bir fikir olup olmadığını iyice düşünün (genellikle işlevin yazarının veya ilk başta kullanılan [[nodiscard]] dönüş türünün iyi bir nedeni vardır). Hala uygun olduğunu düşünüyorsanız ve kod gözden geçireniniz bunu kabul ediyorsa, basit, taşınabilir ve kolay greplenen uyarıyı kapatmak için kullanın std::ignore = .

Kod analizi adı: USE_STD_IGNORE_INSTEAD_OF_VOID_CAST

Örnek

için atama voidyerine kullanınstd::ignore:

struct S{};
[[nodiscard]] S getS();

void function() {
    (void) getS(); // C26457
    std::ignore = getS(); // OK
}