#include <...> for ...

c++/4.1.1/bits/char_traits.h の中身の一部につぎの記述を発見

#include <cstring>            // For memmove, memset, memchr

世の中には私と同じ発想の人がいるんだね。驚いた。これの意図は は memmove, memset, memchr の解決のためにinclude するんだよと。つまりもし、あなたがこのファイルの中で memmove, memset, memchr を使わなくなったらこの inlcude を消してしまってくださいということ。つまりこの人は最初の include を目指しているあるいはすべてコントロール可能な include を目指しているわけで、プログラマの鏡といえる。自分で全てコントロールするが基本だ。そしてそれ以上はない。

それとは逆に、世の中には”あんぽんたんなinclude"を使う人がいる。

#include "ぜんぶもり.h"

とやって、なんでもかんでも #include "ぜんぶもり.h" にに集約してしまう。便利なのか?コントロールすることを放棄しているのか?

Java でも import はちゃんとかかないとだめよ。

こういうことをしている人のソースは汚いに違いないし、バグも多いだろう。