1. ホーム
  2. c++

[解決済み] <bits/stdc++.h> を #include しない方が良いのでしょうか?

2022-03-14 08:31:49

質問

のみのコードで質問を投稿しました。 #include ディレクティブは以下の通りでした。

#include <bits/stdc++.h>

先生にはこうしろと言われましたが、コメント欄で「やめたほうがいい」と教えてもらいました。

なぜですか?

解決方法は?

含む <bits/stdc++.h> は、Stack Overflowでますますよく見かけるようになったようです。おそらく、今年度の国のカリキュラムに新しく追加されたものなのでしょう。

メリットはこのように漠然と与えられているのでしょうね。

  • を1つだけ書けばよい。 #include の行になります。
  • すべてのものがどの標準ヘッダに入っているかを調べる必要はありません。

残念ながら、これは怠惰なハックで、以下のような個々の標準ヘッダの代わりにGCC内部ヘッダを直接命名しています。 <string> , <iostream><vector> . ポータビリティを台無しにし、恐ろしい習慣を育ててしまうのです。

デメリットは以下の通りです。

  • おそらく、そのコンパイラーでしか動作しないでしょう。
  • 内容が規格で決められていないので、使ってみると何ができるのかわからない。
  • コンパイラを独自の次のバージョンにアップグレードするだけでも、プログラムが壊れることがあります。
  • 標準的なヘッダを一つ一つ解析し、ソースコードと一緒にコンパイルする必要があるため、コンパイルに時間がかかり、コンパイル設定によっては実行ファイルのサイズが大きくなってしまいます。

やめてくれ!


詳細はこちら

Quoraがなぜ悪いかの例。