intをboolに変換するときに!を使うのはなぜですか?
2023-08-16 07:20:56
質問
このように整数をブーリアンに変換する理由は何でしょうか?
bool booleanValue = !!integerValue;
ではなく、単に
bool booleanValue = integerValue;
私が知っているのは、VC++7 では、後者が C4800 警告 が発生し、前者は発生しないことです。他に何か違いがあるのでしょうか?
どのように解決するのですか?
"!"イディオムの問題点は、簡潔であること、見にくいこと、タイプミスと間違えやすいこと、"!の1つを落としやすいこと、などなどです。 私はこれを「C/C++でどれだけかわいくなれるか見てみよう」というカテゴリに入れました。
ただ、書くだけ
bool isNonZero = (integerValue != 0);
...はっきりさせましょう。
関連
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。