昔の Visual C++ というか cl.exe におもしろいバグがあるそうです。
新しい名前空間を作るためには namespace 文を使います。
名前空間付きの標準ライブラリを使うためには、次のようにヘッダをインクルードします。
新しいローカルスコープを作るためには、中括弧によるブロックを使います。
STL のサンプルソースを眺めていると嵐のような typedef に目に留まるのですが、どうやらスコープがあるらしいですね。だから安心して使っているというわけですね。
私のサンプルソースはグローバルスコープ演算子がたくさんついています。
最初はインスタンスハンドルをグローバル変数に待避させる時、名前が同じになってしまったのでつけはじめたのですが、多すぎると気持ち悪いですし、すでにグローバル空間はいろんなシンボルで汚れているので取ることにしました。