Aracılığıyla paylaş


Uyarı C26444

Adı olmayan bir yerel değişken bildirmeye çalışmayın (es.84).

C++ Temel Yönergeleri

ES.84: Adı olmayan bir yerel değişken bildirmeyin (deneme)

Adlandırılmamış değişken bildirimi, deyiminin sonunda atılan geçici bir nesne oluşturur. Önemsiz davranışa sahip bu tür geçici nesneler, kaynakları ayırıp hemen atan verimsiz koda veya yanlışlıkla ayrıcalıksız verileri yoksayan koda işaret edebilir. Bazen açıkça yanlış bildirimi de gösterebilir.

Açıklamalar

  • Bu kural, el ile yazılmış bir yıkıcı veya elle yazılmış bir yıkıcıyı geçişli olarak çağıran derleyici tarafından oluşturulan bir yıkıcı ile türleri algılar.
  • Bu kural, BIR RAII türünün özel olmayan oluşturucusunun çağıran kodu işaretleyebilir.
  • Mantık, daha üst düzey ifadelerde kullanılıyorsa geçici olarak atlar. Bir örnek, bağımsız değişken olarak geçirilen veya bir işlevi çağırmak için kullanılan geçici işlemlerdir.

Kod analizi adı: NO_UNNAMED_RAII_OBJECTS

Örnekler

struct A { A(int i); ~A(); };
void Foo()
{
    A{42}; // warning C26444: Don't try to declare a local variable with no name (es.84).
}

Sorunu düzeltmek için geçici nesneyi yerel bir nesneye dönüştürün.

struct A { A(int i); ~A(); };
void Foo()
{
    A guard{42}; // OK.
}

Ayrıca bkz.

C26441
ES.84: Adı olmayan bir yerel değişken bildirmeyin (deneme)