// Merge success namespace N1 { extern int x0; } // Merge multiple namespaces namespace N2 { extern int x; } namespace N2 { extern float y; } // Merge namespace with conflict namespace N3 { extern double z; } namespace Enclosing { namespace Nested { const int z = 4; } } namespace ContainsInline { inline namespace Inline { const int z = 10; } } namespace TestAliasName = Enclosing::Nested; // NOTE: There is no warning on this alias. namespace AliasWithSameName = Enclosing::Nested; namespace TestUsingDecls { namespace A { void foo(); } namespace B { using A::foo; // <- a UsingDecl creating a UsingShadow } }// end namespace TestUsingDecls namespace TestUnresolvedTypenameAndValueDecls { template <class T> class Base; template <class T> class Derived : public Base<T> { public: using typename Base<T>::foo; using Base<T>::bar; typedef typename Derived::foo NewUnresolvedUsingType; }; } // end namespace TestUnresolvedTypenameAndValueDecls namespace TestUsingNamespace { using namespace Enclosing; } |