Aracılığıyla paylaş


C++ Çekirdek Yönergeleri denetleyicisi başvurusu

Bu bölümde C++ Çekirdek Yönergeleri Denetleyicisi uyarıları listelenir. Kod Analizi hakkında bilgi için bkz /analyze . (Kod Analizi) ve Hızlı Başlangıç: C/C++ için Kod Analizi.

Dekont

Bazı uyarılar birden fazla gruba aittir ve tüm uyarıların tam bir başvuru konusu yoktur.

OWNER_POINTER Grubu

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Taşıma oluşturucusunun olması durumunda yığınla ayrılmış bir nesne yerine kapsamlı bir nesne döndürür. Bkz. C++ Temel Yönergeleri R.3.

C26403 RESET_OR_DELETE_OWNER
Sahip T> işaretçisi 'değişken' öğesini sıfırlayın veya açıkça silin<. Bkz. C++ Temel Yönergeleri R.3.

C26404 DONT_DELETE_INVALID
Geçersiz durumda olabilecek bir sahip<T'yi> silmeyin. Bkz. C++ Temel Yönergeleri R.3.

C26405 DONT_ASSIGN_TO_VALID
Geçerli durumda olabilecek bir sahip<T'ye> atamayın. Bkz. C++ Temel Yönergeleri R.3.

C26406 DONT_ASSIGN_RAW_TO_OWNER
Sahip T'ye> ham işaretçi atayın<. Bkz. C++ Temel Yönergeleri R.3.

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
Kapsamlı nesneleri tercih edin, gereksiz yere yığın ayırmayın. Bkz. C++ Çekirdek Yönergeleri R.5.

C26429 USE_NOTNULL
Sembol 'symbol' hiçbir zaman null olup olmadığını test etmez, not_null olarak işaretlenebilir. Bkz . C++ Temel Yönergeleri F.23.

C26430 TEST_ON_ALL_PATHS
'symbol' simgesi tüm yollarda null olup olmadığını test etmemektedir. Bkz . C++ Temel Yönergeleri F.23.

C26431 DONT_TEST_NOTNULL
'expr' ifadesinin türü zaten gsl::not_null. Nulllik için test etmeyin. Bkz . C++ Temel Yönergeleri F.23.

RAW_POINTER Grubu

C26400 NO_RAW_POINTER_ASSIGNMENT
Bir ayırma veya sahip<T> dönüş değeri olan bir işlev çağrısının sonucunu ham işaretçiye atayın; bunun yerine sahip<T> kullanın. Bkz . C++ Temel Yönergeleri I.11.

C26401 DONT_DELETE_NON_OWNER
T> sahibi<olmayan bir ham işaretçiyi silmeyin. Bkz . C++ Temel Yönergeleri I.11.

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
Taşıma oluşturucusunun olması durumunda yığınla ayrılmış bir nesne yerine kapsamlı bir nesne döndürür. Bkz. C++ Temel Yönergeleri R.3.

C26408 NO_MALLOC_FREE
malloc() ve free() kullanmaktan kaçının, delete ile yeni sürümünün nothrow sürümünü tercih edin. Bkz . C++ Temel Yönergeleri R.10.

C26409 NO_NEW_DELETE
Yeni çağrısı yapmaktan kaçının ve açıkça silin, bunun yerine std::make_unique<T> kullanın. Bkz . C++ Çekirdek Yönergeleri R.11.

C26429 USE_NOTNULL
Sembol 'symbol' hiçbir zaman null olup olmadığını test etmez, not_null olarak işaretlenebilir. Bkz . C++ Temel Yönergeleri F.23.

C26430 TEST_ON_ALL_PATHS
'symbol' simgesi tüm yollarda null olup olmadığını test etmemektedir. Bkz . C++ Temel Yönergeleri F.23.

C26431 DONT_TEST_NOTNULL
'expr' ifadesinin türü zaten gsl::not_null. Nulllik için test etmeyin. Bkz . C++ Temel Yönergeleri F.23.

C26481 NO_POINTER_ARITHMETIC
İşaretçi aritmetiği kullanmayın. Bunun yerine span kullanın. Bkz. C++ Temel Yönergeler Sınırları.1.

C26485 NO_ARRAY_TO_POINTER_DECAY
'expr' ifadesi: İşaretçi bozunması için bir dizi yok. Bkz. C++ Temel Yönergeler Sınırları.3.

UNIQUE_POINTER Grubu

C26410 NO_REF_TO_CONST_UNIQUE_PTR
'parameter' parametresi benzersiz işaretçiye const başvurudur, bunun yerine const T* veya const T& kullanın. Bkz. C++ Çekirdek Yönergeleri R.32.

C26411 NO_REF_TO_UNIQUE_PTR
'parameter' parametresi benzersiz işaretçiye başvurudur ve hiçbir zaman yeniden atanamaz veya sıfırlanır, bunun yerine T* veya T& kullanın. Bkz . C++ Çekirdek Yönergeleri R.33.

C26414 RESET_LOCAL_SMART_PTR
'Sembol' yerel akıllı işaretçisini taşıyın, kopyalayın, yeniden atayın veya sıfırlayın. Bkz. C++ Çekirdek Yönergeleri R.5.

C26415 SMART_PTR_NOT_NEEDED
Akıllı işaretçi parametresi 'symbol' yalnızca kapsanan işaretçiye erişmek için kullanılır. Bunun yerine T* veya T& kullanın. Bkz . C++ Temel Yönergeleri R.30.

SHARED_POINTER Grubu

C26414 RESET_LOCAL_SMART_PTR
'Sembol' yerel akıllı işaretçisini taşıyın, kopyalayın, yeniden atayın veya sıfırlayın. Bkz. C++ Çekirdek Yönergeleri R.5.

C26415 SMART_PTR_NOT_NEEDED
Akıllı işaretçi parametresi 'symbol' yalnızca kapsanan işaretçiye erişmek için kullanılır. Bunun yerine T* veya T& kullanın. Bkz . C++ Temel Yönergeleri R.30.

C26416 NO_RVALUE_REF_SHARED_PTR
Paylaşılan işaretçi parametresi 'symbol' rvalue başvurusu tarafından geçirilir. Bunun yerine değere göre geçirin. Bkz . C++ Çekirdek Yönergeleri R.34.

C26417 NO_LVALUE_REF_SHARED_PTR
Paylaşılan işaretçi parametresi 'symbol' başvuru tarafından geçirilir ve sıfırlanmaz veya yeniden atanmaz. Bunun yerine T* veya T& kullanın. Bkz . C++ Temel Yönergeleri R.35.

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
Paylaşılan işaretçi parametresi 'symbol' kopyalanmaz veya taşınmaz. Bunun yerine T* veya T& kullanın. Bkz. C++ Çekirdek Yönergeleri R.36.

BILDIRIM Grubu

C26426 NO_GLOBAL_INIT_CALLS
Genel başlatıcı constexpr olmayan bir işlevi 'symbol' olarak çağırır. Bkz. C++ Temel Yönergeleri I.22.

C26427 NO_GLOBAL_INIT_EXTERNS
Genel başlatıcı 'symbol' extern nesnesine erişir. Bkz. C++ Temel Yönergeleri I.22.

C26444 NO_UNNAMED_RAII_OBJECTS
Özel yapı ve yıkım ile adlandırılmamış nesnelerden kaçının. Bkz . ES.84: Adsız bir yerel değişken bildirmeyin (deneme).

CLASS Grubu

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
'symbol' türünde herhangi bir varsayılan işlem tanımlar veya silerseniz, bunların tümünü tanımlayın veya silin. Bkz. C++ Temel Yönergeleri C.21.

C26433 OVERRIDE_EXPLICITLY
'symbol' işlevi 'override' ile işaretlenmelidir. Bkz . C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son değerlerden birini belirtmelidir.

C26434 DONT_HIDE_METHODS
'symbol_1' işlevi, 'symbol_2' sanal olmayan bir işlevi gizler. Bkz . C++ Temel Yönergeleri C.128.

C26435 SINGLE_VIRTUAL_SPECIFICATION
'symbol' işlevi tam olarak 'virtual', 'override' veya 'final' işlevlerinden birini belirtmelidir. Bkz . C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son değerlerden birini belirtmelidir.

C26436 NEED_VIRTUAL_DTOR
Sanal işlev içeren 'symbol' türü genel sanal veya korumalı sanal olmayan yıkıcıya ihtiyaç duyar. Bkz. C++ Temel Yönergeleri C.35.

C26443 NO_EXPLICIT_DTOR_OVERRIDE
Yıkıcı geçersiz kılınırken açık 'geçersiz kılma' veya 'sanal' tanımlayıcıları kullanılmamalıdır. Bkz . C.128: Sanal işlevler tam olarak sanal, geçersiz kılma veya son değerlerden birini belirtmelidir.

STYLE Grubu

C26438 NO_GOTO
goto ifadesinden kaçının. Bkz . C++ Çekirdek Yönergeleri ES.76.

İşlev Grubu

C26439 SPECIAL_NOEXCEPT
Bu tür bir işlev oluşturmayabilir. noexceptbunu bildirin. Bkz . C++ Temel Yönergeleri F.6.

C26440 DECLARE_NOEXCEPT
'symbol' işlevi bildirilebilir noexcept. Bkz . C++ Temel Yönergeleri F.6.

C26447 DONT_THROW_IN_NOEXCEPT
İşlev bildirilir noexcept , ancak özel durumlar oluşturabilecek bir işlev çağırır. Bkz . C++ Temel Yönergeleri: F.6: İşleviniz oluşturmuyorsa noexcept olarak bildirin.

EŞZAMANLıLıK Grubu

C26441 NO_UNNAMED_GUARDS
Guard nesneleri adlandırılmalıdır. Bkz . C++ Çekirdek Yönergeleri cp.44.

CONST Grubu

C26460 USE_CONST_REFERENCE_ARGUMENTS
'function' işlevi için 'argument' başvuru bağımsız değişkeni olarak constişaretlenebilir. Bkz. C++ Core Guidelines con.3.

C26461 USE_CONST_POINTER_ARGUMENTS:
'function' işlevi için 'argument' işaretçi bağımsız değişkeni, işaretçi olarak constişaretlenebilir. Bkz. C++ Core Guidelines con.3.

C26462 USE_CONST_POINTER_FOR_VARIABLE
'değişken' tarafından işaret edilen değer yalnızca bir kez atanır, işaretçi olarak işaret eder const. Bkz. C++ Core Guidelines con.4.

C26463 USE_CONST_FOR_ELEMENTS
'array' dizisinin öğeleri yalnızca bir kez atanır, öğeleri constişaretleyin. Bkz. C++ Core Guidelines con.4.

C26464 USE_CONST_POINTER_FOR_ELEMENTS
'array' dizisinin öğeleri tarafından işaret edilen değerler yalnızca bir kez atanır ve öğeleri işaretçi constolarak işaretler. Bkz. C++ Core Guidelines con.4.

C26496 USE_CONST_FOR_VARIABLE
'variable' değişkeni yalnızca bir kez atanır, olarak constişaretleyin. Bkz. C++ Core Guidelines con.4.

C26497 USE_CONSTEXPR_FOR_FUNCTION
Derleme zamanı değerlendirmesi isteniyorsa bu işlev işaretlenebilirconstexpr. Bkz. C++ Temel Yönergeleri F.4.

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
Bu işlev çağrısı işlevi , derleme zamanı değerlendirmesi isteniyorsa kullanabilir constexpr . Bkz. C++ Core Guidelines con.5.

TÜR Grubu

C26437 DONT_SLICE
Dilimlemiyor. Bkz . C++ Temel Yönergeler ES.63.

C26465 NO_CONST_CAST_UNNECESSARY
'yi kullanmak için constkullanmayınconst_cast. const_cast gerekli değildir; bu dönüştürme ile hareketsizlik veya dalgalanma kaldırılmıyor. Bkz. C++ Çekirdek Yönergeleri Türü.3.

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
Aşağı yayınları kullanmayın static_cast . Polimorfik bir türden tür ataması dynamic_cast kullanmalıdır. Bkz. C++ Çekirdek Yönergeleri Türü.2.

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
reinterpret_cast kullanmayın. Void* tarafından kullanılan bir döküm kullanabilir static_cast. Bkz. C++ Çekirdek Yönergeleri Türü.1.

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
Aritmetik dönüştürmeler için kullanmayın static_cast . Ayraç başlatma, gsl::narrow_cast veya gsl::narrow kullanın. Bkz. C++ Çekirdek Yönergeleri Türü.1.

C26473 NO_IDENTITY_CAST
Kaynak türü ve hedef türün aynı olduğu işaretçi türleri arasında geçiş yapmayın. Bkz. C++ Çekirdek Yönergeleri Türü.1.

C26474 NO_IMPLICIT_CAST
Dönüştürme örtük olabileceğinde işaretçi türleri arasında geçiş yapmayın. Bkz. C++ Çekirdek Yönergeleri Türü.1.

C26475 NO_FUNCTION_STYLE_CASTS
İşlev stili C-casts kullanmayın. Bkz . C++ Çekirdek Yönergeleri ES.49.

C26490 NO_REINTERPRET_CAST
reinterpret_cast kullanmayın. Bkz. C++ Çekirdek Yönergeleri Türü.1.

C26491 NO_STATIC_DOWNCAST
Aşağı yayınları kullanmayın static_cast . Bkz. C++ Çekirdek Yönergeleri Türü.2.

C26492 NO_CONST_CAST
'yi kullanmak için constkullanmayınconst_cast. Bkz. C++ Çekirdek Yönergeleri Türü.3.

C26493 NO_CSTYLE_CAST
C stili atamaları kullanmayın. Bkz. C++ Çekirdek Yönergeleri Türü.4.

C26494 VAR_USE_BEFORE_INIT
'variable' değişkeni başlatılmamış. Her zaman bir nesneyi başlatın. Bkz. C++ Temel Yönergeler Türü.5.

C26495 MEMBER_UNINIT
'variable' değişkeni başlatılmamış. Her zaman bir üye değişkeni başlatın. Bkz. C++ Temel Yönergeler Türü.6.

BOUNDS Grubu

C26446 USE_GSL_AT
İşaretlenmemiş alt simge işleci yerine kullanmayı gsl::at() tercih edin. Bkz . C++ Temel Yönergeleri: Sınırlar.4: Sınır denetlenmeyen standart kitaplık işlevlerini ve türlerini kullanmayın.

C26481 NO_POINTER_ARITHMETIC
İşaretçi aritmetiği kullanmayın. Bunun yerine span kullanın. Bkz. C++ Temel Yönergeler Sınırları.1

C26482 NO_DYNAMIC_ARRAY_INDEXING
Yalnızca sabit ifadeler kullanarak dizilere dizin oluşturun. Bkz. C++ Temel Yönergeler Sınırları.2

C26483 STATIC_INDEX_OUT_OF_RANGE
Değer değeri, 'variable' değişkeninin sınırlarının (0, bağlı) dışındadır. Yalnızca dizinin sınırları içinde yer alan sabit ifadeleri kullanarak dizilere dizin oluşturun. Bkz. C++ Temel Yönergeler Sınırları.2

C26485 NO_ARRAY_TO_POINTER_DECAY
'expr' ifadesi: İşaretçi bozunması için bir dizi yok. Bkz. C++ Temel Yönergeler Sınırları.3

GSL Grubu

C26445 NO_SPAN_REF
Bir başvuru gsl::span veya std::string_view yaşam süresi sorununun göstergesi olabilir. Bkz. C++ Temel Yönergeleri GSL.view: Görünümler

C26446 USE_GSL_AT
İşaretlenmemiş alt simge işleci yerine kullanmayı gsl::at() tercih edin. Bkz . C++ Temel Yönergeleri: Sınırlar.4: Sınır denetlenmeyen standart kitaplık işlevlerini ve türlerini kullanmayın.

C26448 USE_GSL_FINALLY
Son eylemin hedeflenip tasarlanmamış olduğunu kullanmayı gsl::finally göz önünde bulundurun. Bkz . C++ Temel Yönergeleri: GSL.util: Yardımcı Programlar.

C26449 NO_SPAN_FROM_TEMPORARY
gsl::span veya std::string_view geçici bir kaynaktan oluşturulan, geçici geçersiz kılındığında geçersiz olur. Bkz . C++ Temel Yönergeleri: GSL.view: Görünümler.

Kullanım Dışı Uyarılar

Aşağıdaki uyarılar, temel kılavuz denetleyicisinin ilk deneysel kural kümesinde bulunur, ancak artık kullanım dışıdır ve güvenli bir şekilde yoksayılabilir. Uyarılar, yukarıdaki listeden gelen uyarılarla değiştirilir.

  • 26412 DEREF_INVALID_POINTER
  • 26413 DEREF_NULLPTR
  • 26420 ASSIGN_NONOWNER_TO_EXPLICIT_OWNER
  • 26421 ASSIGN_VALID_OWNER
  • 26422 VALID_OWNER_LEAVING_SCOPE
  • 26423 ALLOCATION_NOT_ASSIGNED_TO_OWNER
  • 26424 VALID_ALLOCATION_LEAVING_SCOPE
  • 26425 ASSIGNING_TO_STATIC
  • 26499 NO_LIFETIME_TRACKING

Ayrıca bkz.

C++ Çekirdek Yönergeleri Denetleyicisini Kullanma