C++ Core Guidelines チェッカー リファレンス

このセクションでは、C++ Core Guidelines チェッカーの警告を一覧表示します。 Code Analysis の詳細については、「/analyze (コード分析)」と「クイックスタート: C/C++ のコード分析」を参照してください。

Note

一部の警告は複数のグループに属しています。また完全な参照トピックがない警告もあります。

OWNER_POINTER Group

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
オブジェクトが移動コンストラクターを持つ場合は、ヒープを割り当てたオブジェクトではなく、スコープ オブジェクトを返してください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26403 RESET_OR_DELETE_OWNER
owner<T> ポインター 'variable' はリセットするか、明示的に削除してください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26404 DONT_DELETE_INVALID
無効な状態にある可能性のある owner<T> は削除しないでください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26405 DONT_ASSIGN_TO_VALID
有効な状態にある可能性のある owner<T> には割り当てないでください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26406 DONT_ASSIGN_RAW_TO_OWNER
owner<T> に生ポインターは割り当てないでください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26407 DONT_HEAP_ALLOCATE_UNNECESSARILY
スコープ オブジェクトを優先的に使用し、不必要なヒープ割り当ては行わないでください。 C++ Core Guidelines R.5 に関するページを参照してください。

C26429 USE_NOTNULL
シンボル 'symbol' の null 性がテストされていません。not_null としてマークを付けることができます。 C++ Core Guidelines F.23 に関するページを参照してください。

C26430 TEST_ON_ALL_PATHS
シンボル 'symbol' の null 性がすべてのパスではテストされていません。 C++ Core Guidelines F.23 に関するページを参照してください。

C26431 DONT_TEST_NOTNULL
式 'expr' の型は既に gsl::not_null です。 null 性をテストしないでください。 C++ Core Guidelines F.23 に関するページを参照してください。

RAW_POINTER グループ

C26400 NO_RAW_POINTER_ASSIGNMENT
戻り値が owner<T> の割り当てまたは関数呼び出しの結果を、生ポインターに割り当てないでください。代わりに owner<T> を使ってください。 C++ Core Guidelines I.11 に関するページを参照してください。

C26401 DONT_DELETE_NON_OWNER
owner<T> ではない生ポインターは削除しないでください。 C++ Core Guidelines I.11 に関するページを参照してください。

C26402 DONT_HEAP_ALLOCATE_MOVABLE_RESULT
オブジェクトが移動コンストラクターを持つ場合は、ヒープを割り当てたオブジェクトではなく、スコープ オブジェクトを返してください。 C++ Core Guidelines R.3 に関するページを参照してください。

C26408 NO_MALLOC_FREE
malloc() と free() の使用を避け、nothrow 版の new を delete と共に優先的にご使用ください。 C++ Core Guidelines R.10 に関するページを参照してください。

C26409 NO_NEW_DELETE
new と delete を明示的に呼び出すことは避け、代わりに std::make_unique<T> をご使用ください。 C++ Core Guidelines R.11 に関するページを参照してください。

C26429 USE_NOTNULL
シンボル 'symbol' の null 性がテストされていません。not_null としてマークを付けることができます。 C++ Core Guidelines F.23 に関するページを参照してください。

C26430 TEST_ON_ALL_PATHS
シンボル 'symbol' の null 性がすべてのパスではテストされていません。 C++ Core Guidelines F.23 に関するページを参照してください。

C26431 DONT_TEST_NOTNULL
式 'expr' の型は既に gsl::not_null です。 null 性をテストしないでください。 C++ Core Guidelines F.23 に関するページを参照してください。

C26481 NO_POINTER_ARITHMETIC
ポインター演算は使用しないでください。 代わりに span を使用します。 C++ Core Guidelines Bounds.1 に関するページを参照してください。

C26485 NO_ARRAY_TO_POINTER_DECAY
式 'expr': 配列からポインターへの減退はしないでください。 C++ Core Guidelines Bounds.3 に関するページを参照してください。

UNIQUE_POINTER Group

C26410 NO_REF_TO_CONST_UNIQUE_PTR
パラメーター 'parameter' は一意のポインターへの const 参照であり、代わりに const T* または const T& を使用します。 C++ Core Guidelines R.32 に関するページを参照してください。

C26411 NO_REF_TO_UNIQUE_PTR
パラメーター 'parameter' は一意のポインターへの参照であり、再割り当てまたはリセットされることはありません。代わりに T* または T& を使用してください。 C++ Core Guidelines R.33 に関するページを参照してください。

C26414 RESET_LOCAL_SMART_PTR
ローカル スマート ポインター 'symbol' の移動、コピー、再割り当て、またはリセット。 C++ Core Guidelines R.5 に関するページを参照してください。

C26415 SMART_PTR_NOT_NEEDED
スマート ポインター パラメーター 'symbol' は、含まれているポインターにアクセスするためだけに使用します。 代わりに T* または T& を使用してください。 C++ Core Guidelines R.30 に関するページを参照してください。

SHARED_POINTER グループ

C26414 RESET_LOCAL_SMART_PTR
ローカル スマート ポインター 'symbol' の移動、コピー、再割り当て、またはリセット。 C++ Core Guidelines R.5 に関するページを参照してください。

C26415 SMART_PTR_NOT_NEEDED
スマート ポインター パラメーター 'symbol' は、含まれているポインターにアクセスするためだけに使用します。 代わりに T* または T& を使用してください。 C++ Core Guidelines R.30 に関するページを参照してください。

C26416 NO_RVALUE_REF_SHARED_PTR
共有ポインター パラメーター 'symbol' は、rvalue 参照で渡されています。 代わりに値渡しにします。 C++ Core Guidelines R.34 に関するページを参照してください。

C26417 NO_LVALUE_REF_SHARED_PTR
共有ポインター パラメーター 'symbol' は参照渡しであり、リセットも再割り当てもされません。 代わりに T* または T& を使用してください。 C++ Core Guidelines R.35 に関するページを参照してください。

C26418 NO_VALUE_OR_CONST_REF_SHARED_PTR
共有ポインター パラメーター 'symbol' はコピーも移動もされません。 代わりに T* または T& を使用してください。 C++ Core Guidelines R.36 に関するページを参照してください。

DECLARATION グループ

C26426 NO_GLOBAL_INIT_CALLS
グローバル初期化子が constexpr でない関数 'symbol' を呼び出しています。 C++ Core Guidelines I.22 に関するページを参照してください。

C26427 NO_GLOBAL_INIT_EXTERNS
グローバル初期化子が extern オブジェクト 'symbol' にアクセスしています。 C++ Core Guidelines I.22 に関するページを参照してください。

C26444 NO_UNNAMED_RAII_OBJECTS
カスタムの構築および破棄が行われた、名前のないオブジェクトを使用しないようにしてください。 「ES.84: Don't (try to) declare a local variable with no name (ES.84: 名前のないローカル変数を宣言しないでください)」を参照してください。

CLASS グループ

C26432 DEFINE_OR_DELETE_SPECIAL_OPS
型 'symbol' のいずれかの既定の操作を定義または削除する場合、それらをすべて定義または削除します。 C++ Core Guidelines C.21 に関するページを参照してください。

C26433 OVERRIDE_EXPLICITLY
関数 'symbol' は、'override' でマークする必要があります。 「C.128: Virtual functions should specify exactly one of virtual, override, or final (C.128: 仮想関数は、virtual、override、final のうちの 1 つだけを指定する必要があります)」を参照してください。

C26434 DONT_HIDE_METHODS
関数 'symbol_1' が非 virtual 関数 'symbol_2' を隠蔽しています。 C++ Core Guidelines C.128 に関するページを参照してください。

C26435 SINGLE_VIRTUAL_SPECIFICATION
関数 'symbol' は、'virtual'、'override'、'final' のうちの 1 つだけを指定する必要があります。 「C.128: Virtual functions should specify exactly one of virtual, override, or final (C.128: 仮想関数は、virtual、override、final のうちの 1 つだけを指定する必要があります)」を参照してください。

C26436 NEED_VIRTUAL_DTOR
virtual 関数を持つ型 'symbol' には、public virtual デストラクターか protected 非 virtual デストラクターのどちらかが必要です。 C++ Core Guidelines C.35 に関するページを参照してください。

C26443 NO_EXPLICIT_DTOR_OVERRIDE
オーバーライドするデストラクターで、明示的な 'override' または 'virtual' 指定子を使用しないでください。 「C.128: Virtual functions should specify exactly one of virtual, override, or final (C.128: 仮想関数は、virtual、override、final のうちの 1 つだけを指定する必要があります)」を参照してください。

STYLE グループ

C26438 NO_GOTO
goto は使用しないでください。 C++ Core Guidelines ES.76 に関するページを参照してください。

FUNCTION グループ

C26439 SPECIAL_NOEXCEPT
この種類の関数は throw できません。 noexcept として宣言します。 C++ Core Guidelines F.6 に関するページを参照してください。

C26440 DECLARE_NOEXCEPT
関数 'symbol' を noexcept として宣言することができます。 C++ Core Guidelines F.6 に関するページを参照してください。

C26447 DONT_THROW_IN_NOEXCEPT
関数は noexcept と宣言されていますが、例外をスローする可能性がある関数を呼び出しています。 「C++ Core Guidelines: F.6: If your function may not throw, declare it noexcept (C++ Core Guidelines F.6: 関数でスローされない可能性がある場合は、noexcept として宣言する)」を参照してください。

CONCURRENCY グループ

C26441 NO_UNNAMED_GUARDS
ガード オブジェクトには名前を付ける必要があります。 C++ Core Guidelines cp.44 に関するページを参照してください。

CONST グループ

C26460 USE_CONST_REFERENCE_ARGUMENTS
関数 'function' の参照引数 'argument' は const としてマークできます。 C++ Core Guidelines con.3 に関するページを参照してください。

C26461 USE_CONST_POINTER_ARGUMENTS:
関数 'function' のポインター引数 'argument' を const へのポインターとしてマークできます。 C++ Core Guidelines con.3 に関するページを参照してください。

C26462 U Standard Edition_CONST_POINTER_FOR_VARIABLE
'variable' によってポイントされている値に 1 回だけ割り当てが行われています。それを const に対するポインターとしてマークしてください。 C++ Core Guidelines con.4 に関するページを参照してください。

C26463 USE_CONST_FOR_ELEMENTS
配列 'array' の要素は 1 回だけ割り当てられています。要素を const としてマークしてください。 C++ Core Guidelines con.4 に関するページを参照してください。

C26464 U Standard Edition_CONST_POINTER_FOR_ELEMENTS
配列 'array' の要素でポイントされた値は 1 回だけ割り当てられます。要素を const へのポインターとしてマークしてください。 C++ Core Guidelines con.4 に関するページを参照してください。

C26496 U Standard Edition_CONST_FOR_VARIABLE
変数 '変数' は 1 回だけ割り当てられています。const としてマークしてください。 C++ Core Guidelines con.4 に関するページを参照してください。

C26497 USE_CONSTEXPR_FOR_FUNCTION
コンパイル時の評価が必要な場合、関数 functionconstexpr としてマークすることができます。 C++ Core Guidelines F.4 に関するページを参照してください。

C26498 USE_CONSTEXPR_FOR_FUNCTIONCALL
コンパイル時の評価が必要な場合は、この関数呼び出し functionconstexpr を使用できます。 C++ Core Guidelines con.5 に関するページを参照してください。

TYPE グループ

C26437 DONT_SLICE
スライスしないでください。 C++ Core Guidelines ES.63 に関するページを参照してください。

C26465 NO_CONST_CAST_UNNECESSARY
const をキャストするために const_cast を使用しないでください。 const_cast は必須ではありません。この変換では、const 性または揮発性は失われません。 C++ Core Guidelines Type.3 に関するページを参照してください。

C26466 NO_STATIC_DOWNCAST_POLYMORPHIC
static_cast ダウンキャストは使用しないでください。 ポリモーフィックな型からのキャストでは、dynamic_cast を使用する必要があります。 C++ Core Guidelines Type.2 に関するページを参照してください。

C26471 NO_REINTERPRET_CAST_FROM_VOID_PTR
reinterpret_cast を使用しないでください。 void* からのキャストでは、static_cast を使用できます。 C++ Core Guidelines Type.1 に関するページを参照してください。

C26472 NO_CASTS_FOR_ARITHMETIC_CONVERSION
算術変換には static_cast を使用しないでください。 ブレースの初期化、gsl::narrow_cast、gsl::narrow のいずれかを使用します。 C++ Core Guidelines Type.1 に関するページを参照してください。

C26473 NO_IDENTITY_CAST
変換元の型と変換先の型が同じ場合、ポインター型間ではキャストしないでください。 C++ Core Guidelines Type.1 に関するページを参照してください。

C26474 NO_IMPLICIT_CAST
変換が暗黙的になる可能性がある場合はポインター型間ではキャストしないでください。 C++ Core Guidelines Type.1 に関するページを参照してください。

C26475 NO_FUNCTION_STYLE_CASTS
関数の C スタイルのキャストは使用しないでください。 C++ Core Guidelines ES.49 に関するページを参照してください。

C26490 NO_REINTERPRET_CAST
reinterpret_cast を使用しないでください。 C++ Core Guidelines Type.1 に関するページを参照してください。

C26491 NO_STATIC_DOWNCAST
static_cast ダウンキャストは使用しないでください。 C++ Core Guidelines Type.2 に関するページを参照してください。

C26492 NO_CONST_CAST
const をキャストするために const_cast を使用しないでください。 C++ Core Guidelines Type.3 に関するページを参照してください。

C26493 NO_CSTYLE_CAST
C スタイルのキャストを使用しないでください。 C++ Core Guidelines Type.4 に関するページを参照してください。

C26494 VAR_UStandard Edition_BEFORE_INIT
変数 'variable' が初期化されていません。 オブジェクトは必ず初期化してください。 C++ Core Guidelines Type.5 に関するページを参照してください。

C26495 MEMBER_UNINIT
変数 'variable' が初期化されていません。 メンバー変数は必ず初期化してください。 C++ Core Guidelines Type.6 に関するページを参照してください。

BOUNDS グループ

C26446 USE_GSL_AT
チェックされていない添字演算子の代わりに gsl::at() の使用を優先します。 「C++ Core Guidelines: Bounds.4: Don't use standard-library functions and types that are not bounds-checked (C++ Core Guidelines: Bounds.4: 境界がチェックされていない標準ライブラリの関数と型を使用しない)」を参照してください。

C26481 NO_POINTER_ARITHMETIC
ポインター演算は使用しないでください。 代わりに span を使用します。 C++ Core Guidelines Bounds.1 に関するページを参照してください

C26482 NO_DYNAMIC_ARRAY_INDEXING
配列に対するインデックスには定数式のみを使用します。 C++ Core Guidelines Bounds.2 に関するページを参照してください

C26483 STATIC_INDEX_OUT_OF_RANGE
value が変数 'variable' の境界 (0、bound) の外にあります。 配列に対するインデックスには、配列の境界内にある定数式のみを使用してください。 C++ Core Guidelines Bounds.2 に関するページを参照してください

C26485 NO_ARRAY_TO_POINTER_DECAY
式 'expr': 配列からポインターへの減退はしないでください。 C++ Core Guidelines Bounds.3 に関するページを参照してください

GSL グループ

C26445 NO_SPAN_REF
gsl::span または std::string_view への参照は、有効期間の問題を示している可能性があります。 「C++ Core Guidelines GSL.view: Views (C++ Core Guidelines GSL.view: 表示)」を参照してください

C26446 USE_GSL_AT
チェックされていない添字演算子の代わりに gsl::at() の使用を優先します。 「C++ Core Guidelines: Bounds.4: Don't use standard-library functions and types that are not bounds-checked (C++ Core Guidelines: Bounds.4: 境界がチェックされていない標準ライブラリの関数と型を使用しない)」を参照してください。

C26448 USE_GSL_FINALLY
最終アクションが予定されている場合、gsl::finally の使用を検討します。 「C++ Core Guidelines: GSL.util: Utilities (C++ Core Guidelines: GSL.util: ユーティリティ)」を参照してください。

C26449 NO_SPAN_FROM_TEMPORARY
テンポラリが無効化されているときにテンポラリから作成される gsl::span または std::string_view は無効になります。 「C++ Core Guidelines GSL.view: Views (C++ Core Guidelines GSL.view: 表示)」を参照してください。

非推奨の警告

次の警告は、Core Guidelines チェッカーの初期の実験用ルール セット内にありますが、現在は非推奨となり、無視しても問題ありません。 この警告は、上記の一覧の警告に置き換えられます。

  • 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

関連項目

C++ Core ガイドライン チェッカーの使用