1

古いコードの意味を理解しようとしているときに、型からの減算のように見えるものに出くわしました。これは古い C++ イディオムですか? 私は推測しようとしてきましたが、C++ にオーバーロードされた 'type' 型がある場合、operator-()それが何をするのか推測することさえできません。

int* array;
if(array[index] != (int)-1)
{
    //do things
}

(これを要約するために明らかにリファクタリング/削除しました。このコードはコンパイルして動作しますが、ステップスルーしても、この行が何をしているのかintわかりません) 彼らが何をしているかわからない。

4

1 に答える 1

8

これは、減算ではなく-1としてキャストされます。int

Jerry Coffin がうまく指摘したように、そのリテラルはintいずれにせよ型であるため、キャストは無意味です (しゃれは意図されていません)。

于 2013-07-04T01:47:46.787 に答える