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