スコープ解決演算子を用いずに名前を使おうとした場合、一番近いスコープで宣言されている名前のことになります。ほかのスコープにある名前を使いたければスコープ解決演算子を用いて書きます。スコープ解決演算子を使えば、隠蔽されている名前でも使えます。中で宣言されているためです。使えますが、宣言される名前はグローバル名前空間にあります。C++版標準ヘッダでは、std名前空間で宣言されています5。名前空間のネスト名前空間の内側に別の名前空間があるという状態が許されています。区切ることで一度に定義できるようになりました6。可能になりました7)。{}インライン名前空間で定義された名前は、名前空間名の指定をせずに使えます。書くことも許されます。インライン名前空間の使いどころとして、複数バージョンの機能を維持するコードの例があります。v2インライン名前空間に囲みます。すると、ユーザー側は名前空間名を指定することなく、新しいほうの機能を使用できます。v3名前空間をインライン名前空間にします。これで、使用者側のコードを書き換えることなく、新しい機能が使えます(コンパイルしなおす必要はある)。ような方法では記述できませんでした。ない名前空間を定義できます。無名名前空間で宣言された名前は、内部結合(「分割コンパイル」のページを参照)になります。無名名前空間には名前がないので、名前の衝突を避けるという目的はありません。名前がある名前空間は、名前の衝突を避けることが目的であり、名前を内部結合にする効力はありません。