他のコードに似たコードを見つける方法を知っている人はいますか?
関数やコードフラグメントを書くことがよくありますが、以前にそのようなものを書いたことがあるので、以前の実装を再利用したいと思いますが、プレーンテキスト検索を使用しても、変数名を使用しなかったため、何も表示されません。まったく同じである。
同様のコードフラグメントがあると、不要なコードの重複が発生しますが、コードベースが大きい場合、すべてのコードをメモリに保持することは不可能です。機能の点で「類似」しているコードとマークされたフラグメントまたは関数の分析を実行するツールはありますか?
次の例を検討してください。
float xDistance = 0, zDistance = 0;
if (camPos.X()<xgMin) xDistance = xgMin-camPos.X();
if (camPos.X()>xgMax) xDistance = camPos.X()-xgMax;
if (camPos.Z()<zgMin) zDistance = zgMin-camPos.Z();
if (camPos.Z()>zgMax) zDistance = camPos.Z()-zgMax;
float dist = sqrt(xDistance*xDistance+zDistance*zDistance);
と
float distX = 0, distZ = 0;
if (cPos.X()<xgMin) distX = xgMin-cPos.X();
if (cPos.X()>xgMax) distX = cPos.X()-xgMax;
if (cPos.Z()<zgMin) distZ = zgMin-cPos.Z();
if (cPos.Z()>zgMax) distZ = cPos.Z()-zgMax;
float dist = sqrt(distX*distX +distZ*distZ);
私には、これはすでに何度か質問され、回答されているようです。
https://stackoverflow.com/questions/204177/what-tool-to-find-code-duplicates-in-c-projects
ここで複製として閉じることをお勧めします。
実際、これはより一般的な検索の問題だと思います。たとえば、StackOverflowで質問が既に行われている場合、どうすれば検索できますか?