double diff = static_cast<int64_t>(a- b);
a
およびb
タイプはint64_t
です。
私たちのプロジェクトでこのコードを見ました。疑わしいと思いますが、よくわかりません。私は に精通しておりstatic_cast
、このようなコードは書きません。
この static_cast は有効/合法ですか? それは役に立ちますか?
double diff = static_cast<int64_t>(a- b);
a
およびb
タイプはint64_t
です。
私たちのプロジェクトでこのコードを見ました。疑わしいと思いますが、よくわかりません。私は に精通しておりstatic_cast
、このようなコードは書きません。
この static_cast は有効/合法ですか? それは役に立ちますか?
a
とb
が両方ともである場合int64_t
、キャストの意味はありません。int64_t
type の結果を typeにキャストしていint64_t
ます。これは次のようになります。
int a = 10, b = 5;
double c = (int)(a - b); // the cast is not needed, but also not "harmful"
このキャストは有効ですが、何もしません。疑わしいことに同意します。コードが何をしているのかを慎重に確認する必要があります。それが正しい場合は、意図がより明確になり、疑わしく見えないように書き直す必要があります。