C++11にはインラインネームスペースという機能があります。インラインネームスペース内は透過的にアクセスすることが可能です。 inline namespace name { void foo(); } この場合fooはname::foo();でもfoo();でも呼び出せます。 そんなinline namespace。gccでも実装されているのですが、同名のinline namespaceとnamespaceを作るとどちらもinline namespaceとして扱われてしまうというバグが存在しています。 namespace name { void func1() {} } inline namespace name { void func2() {} } 上記のように同じ名前空間をinline namespace/namespace両方でで宣言すると、どちらに含まれる識別子も名前修飾なしで透