using-directive.cpp [plain text]
namespace A {
short i; namespace B {
long i; void f() {} int k;
namespace E {} expected-note{{candidate found by name lookup is 'A::B::E'}}
}
namespace E {}
namespace C {
using namespace B;
namespace E {} expected-note{{candidate found by name lookup is 'A::C::E'}}
}
void f() {}
class K1 {
void foo();
};
void local_i() {
char i;
using namespace A;
using namespace B;
int a[sizeof(i) == sizeof(char)? 1 : -1]; }
namespace B {
int j;
}
void ambig_i() {
using namespace A;
using namespace A::B;
(void) i; f(); (void) j; using namespace C;
(void) k; using namespace E; }
struct K2 {}; }
struct K2 {};
using namespace A;
void K1::foo() {}
struct K2 *k2;
K2 *k3;
class X { using namespace A; };
namespace N {
struct K2;
struct K2 { };
}
namespace Ni {
int i(); }
namespace NiTest {
using namespace A;
using namespace Ni;
int test() {
return i; }
}
namespace OneTag {
struct X; }
namespace OneFunction {
void X(); }
namespace TwoTag {
struct X; }
namespace FuncHidesTagAmbiguity {
using namespace OneTag;
using namespace OneFunction;
using namespace TwoTag;
void test() {
(void)X(); }
}
namespace Aliased {
void inAliased();
}
namespace Alias = Aliased;
using namespace Alias;
void testAlias() {
inAliased();
}
namespace N { void f2(int); }
extern "C++" {
using namespace N;
void f3() { f2(1); }
}
void f4() { f2(1); }
using namespace std; using namespace ::std;
namespace test1 {
namespace ns { typedef int test1; }
template <class T> using namespace ns;
test1 x;
}