%module xxx namespace std { template class vector {}; } struct S1 {}; struct S2 {}; struct S3 {}; struct S4 {}; struct S5 {}; struct S6 {}; struct S7 {}; // valid namespace std { %template(vi1) vector; template class vector; } // valid using namespace std; %template(vi2) vector; template class vector; // valid using std::vector; %template(vi3) vector; template class vector; // ill-formed namespace unrelated { using std::vector; %template(vi4) vector; template class vector; } // ill-formed namespace unrelated { using namespace std; %template(vi5) vector; template class vector; } // ill-formed namespace unrelated { namespace std { %template(vi6) vector; template class vector; } } // ill-formed namespace unrelated { %template(vi7) std::vector; template class std::vector; }