namespace)*1の、一見すると不思議な(実は根拠がある)定義に関するメモ。Overflow上での質問と回答内容に基づく。namespaceの振る舞いを次の通り定義する。7.3.1.1/p1でも同一*2。namespace内から、同namespaceで定義された名前(A)をグローバル名前空間の修飾名(::A)で参照」する問題が挙げられる。namespace)に取り込まれた名前XXX::Aに正しくアクセスできる。namespaceは下記コードと等価になる。a0の箇所ではill-formedとなるがa1の箇所ではwell-formedとなり、全体として一貫性のない振る舞いになってしまう。3.1でそれぞれコンパイルできることを確認。namespaceの扱いについて、2012年11月現在のMSDNではC++言語仕様通りでない簡易定義で説明されている。2012(MSVC11)では下記コードがコンパイルエラーになる。メンバーではありません。}回避策として下記2パターンのように記述すれば、それぞれ期待通りにコンパイルが通ることを確認。扱いが追加されているが、基本的な振る舞いはC++03と同じ。1注目記事はてなブログをはじめよう!yohhoyさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。