最近、コードの品質を向上させるために -Wall コンパイラ スイッチを使い始めました。この小さなスニペットについて(正しく)警告を発しています...
int i;
for (i = start - 1; i >= 0; i--)
{
if (i >= number1.array.size())
{
one_value = 0;
}
number1.array.size は署名されていないためです (これは std::vector の size メソッドです)。ループ内のテストは i >= 0 であるため、署名する必要があります。そうしないと機能しません。3 つの選択肢があるようです。-Wall の使用を控える、警告を無視する、または補助的な要素を導入する...
int i;
unsigned int j;
for (i = start - 1; i >= 0; i--)
{
j = i;
if (j >= number1.array.size())
{
one_value = 0;
}
これらのどれも特に望ましいとは思えません。この場合、私が何をすべきかについて、代替案を提案したり、推奨したりできますか?