Fix using declarations and templates. %template was putting the

instantiated template into the global namespace instead of the namespace
of the template definition. This fixes regression in swig-2.0.5 copying
the std::pair typemaps which occurs with a 'using std::pair'
declaration. This also fixes lots of other using declarations of
template problems (template forward declarations. combinations
using directives).

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13504 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2012-08-04 20:24:22 +00:00
commit 54726b9d09
9 changed files with 339 additions and 7 deletions

View file

@ -0,0 +1,21 @@
%module li_std_pair_using
%include<stl.i>
using std::pair;
%template(StringStringPair) pair<std::string, std::string>;
%inline %{
typedef int Integer;
using std::string;
%}
%template(StringIntPair) pair<string, int>;
%inline %{
typedef std::string String;
typedef string Streeng;
std::pair<String, Streeng> bounce(std::pair<std::string, string> p) {
return p;
}
%}