61 lines · cpp
1// Merge success2namespace N1 {3 extern int x0;4}5 6// Merge multiple namespaces7namespace N2 {8 extern int x;9}10namespace N2 {11 extern float y;12}13 14// Merge namespace with conflict15namespace N3 {16 extern double z;17}18 19namespace Enclosing {20namespace Nested {21 const int z = 4;22}23}24 25namespace ContainsInline {26 inline namespace Inline {27 const int z = 10;28 }29}30 31namespace TestAliasName = Enclosing::Nested;32// NOTE: There is no warning on this alias.33namespace AliasWithSameName = Enclosing::Nested;34 35namespace TestUsingDecls {36 37namespace A {38void foo();39}40namespace B {41using A::foo; // <- a UsingDecl creating a UsingShadow42}43 44}// end namespace TestUsingDecls45 46namespace TestUnresolvedTypenameAndValueDecls {47 48template <class T> class Base;49template <class T> class Derived : public Base<T> {50public:51 using typename Base<T>::foo;52 using Base<T>::bar;53 typedef typename Derived::foo NewUnresolvedUsingType;54};55 56} // end namespace TestUnresolvedTypenameAndValueDecls57 58namespace TestUsingNamespace {59 using namespace Enclosing;60}61