[programming]C++で「__」が使えるのか

C++で変数名などの識別子には「"__"を含むもの」と、
「"_"で始まり次が大文字のアルファベットのもの」は使えない。
と規格に書いてあったはず。

なのに世の中のお手軽ライブラリを使ってみると特に「__」を含んだ変数がよく現れる。
これはなんなんだろう?

STLに出現するのはコンパイラ側が提供しているものだと思えば納得できるのだが。