CLion 2026.2 Help

インスペクション: 引数選択の欠陥

同じ型の複数のパラメーターを使用して関数を呼び出すと、誤って交換する可能性があるため、デバッグが困難なエラーが発生する可能性があります。 引数選択の欠陥 インスペクションは、コードをコンパイルすることなく、このようなエラーを明らかにして迅速に修正できます(元のヒューリスティックアルゴリズムはこの 研究論文にあります(英語))。

エディターでの引数選択の欠陥インスペクション

このインスペクションはデフォルトで有効になっています。 その重大度とスコープを構成するか、 インスペクション設定ダイアログでインスペクションをオフにすることができます(C/C++一般引数選択の欠陥 を選択)。

機能範囲

引数の選択に誤りがあるインスペクションは、同じ型の 複数 の引数が間違った順序で関数に渡されたことを検出します。 そのような場合、インスペクションはユーザー定義のものを含む 任意の型 を処理できます。 また、インスペクションは typo-tolerant なので、引数は必ずしも同じである必要はありません。

制限

誤検出を避けるため、引数選択の欠陥インスペクションは 警告しない 次の場合に発生します:

  • 関数は再帰的です

  • 入れ替わっている可能性がある引数が可変長引数である場合、例えば:

    void f(int left, ...); void b(int left, int right) { f(right, left); }
  • 関数名またはパラメーター名には、 swapreverseinverseflipbackward 、または rotate の部分文字列が含まれています。

  • 引数名は 3 つのシンボルよりも短い (x, y, ab のような)

  • 関数が同じ引数を異なる順序で渡して複数回呼び出される場合、例えば:

    case LANDSCAPE: bitmap = new Bitmap (width , height); break ; case PORTRAIT: bitmap = new Bitmap (height , width); ...
2026 年 7 月 15 日