61 lines
1.0 KiB
C++
61 lines
1.0 KiB
C++
// 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;
|
|
}
|