new tests for string and directors+containers
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5772 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
a672ff61ef
commit
c8d7e4d971
4 changed files with 189 additions and 0 deletions
66
SWIG/Examples/test-suite/python/director_stl.i
Normal file
66
SWIG/Examples/test-suite/python/director_stl.i
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
%module(directors="1") director_stl
|
||||
|
||||
%include "std_string.i"
|
||||
%include "std_pair.i"
|
||||
%include "std_vector.i"
|
||||
|
||||
%feature("director") Foo;
|
||||
|
||||
%feature("director:except") {
|
||||
if ($error != NULL) {
|
||||
throw Swig::DirectorMethodException();
|
||||
}
|
||||
}
|
||||
|
||||
%exception {
|
||||
try { $action }
|
||||
catch (...) { SWIG_fail; }
|
||||
}
|
||||
|
||||
%inline
|
||||
{
|
||||
class Foo {
|
||||
public:
|
||||
virtual ~Foo() {}
|
||||
|
||||
virtual std::string& bar(std::string& s)
|
||||
{
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
virtual std::string ping(std::string s) = 0;
|
||||
virtual std::string pong(const std::string& s)
|
||||
{ return std::string("Foo::pong:") + s + ":" + ping(s); }
|
||||
|
||||
std::string tping(std::string s) { return ping(s); }
|
||||
std::string tpong(const std::string& s) { return pong(s); }
|
||||
|
||||
virtual std::pair<double, int>
|
||||
pident(const std::pair<double, int>& p) { return p; }
|
||||
|
||||
virtual std::vector<int>
|
||||
vident(const std::vector<int>& p) { return p; }
|
||||
|
||||
virtual std::vector<int>
|
||||
vsecond(const std::vector<int>& p, const std::vector<int>& s) { return s; }
|
||||
|
||||
std::pair<double, int>
|
||||
tpident(const std::pair<double, int>& p) { return pident(p); }
|
||||
|
||||
std::vector<int>
|
||||
tvident(const std::vector<int>& p) { return vident(p); }
|
||||
|
||||
virtual std::vector<int>
|
||||
tvsecond(const std::vector<int>& p, const std::vector<int>& s) { return vsecond(p,s); }
|
||||
|
||||
|
||||
virtual std::vector<std::string>
|
||||
vidents(const std::vector<std::string>& p) { return p; }
|
||||
|
||||
std::vector<std::string>
|
||||
tvidents(const std::vector<std::string>& p) { return vidents(p); }
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue