CXX.POSSIBLE_COPY_PASTE.TERNARY_OP

三項演算子の 'then' および 'else' ブランチでの潜在的なコピーペースト。

このチェッカーは、三項演算子の 'then' ブランチと 'else' ブランチで同じ式が使用された場合、欠陥を報告します。

脆弱コード例

コピー
   void g() { cout <<g() is called”; }
   void f() { cout <<f() is called”; }
   void f1(bool b)
   {
     float value2 = b ? g() : g(); 
   }

上記の例では、三項演算子の then ブランチと else ブランチの両方がまったく同じであるため、5 行目は不適合です。Klocwork は、5 行目で CXX.POSSIBLE_COPY_PASTE.TERNARY_OP 欠陥を報告し、「三項演算子の 'then' および 'else' ブランチでの潜在的なコピーペースト。」と表示します。

修正コード例

コピー
   void g() { cout <<g() is called”; }
   void f() { cout <<f() is called”; }
   void f1(bool b)
   {
     float value2 = b ? f() : g(); 
   }

この修正例では、Klocwork はもはや 5 行目で CXX.POSSIBLE_COPY_PASTE.TERNARY_OP 欠陥を報告しなくなります。