1
%module(directors="1") director_stl
2
#pragma SWIG nowarn=SWIGWARN_TYPEMAP_THREAD_UNSAFE,SWIGWARN_TYPEMAP_DIRECTOROUT_PTR
4
%include "std_string.i"
6
%include "std_vector.i"
8
#ifndef SWIG_STD_DEFAULT_INSTANTIATION
9
%template() std::vector<double>;
10
%template() std::vector<int>;
11
%template() std::vector<std::string>;
12
%template() std::pair<std::string, int>;
13
%template() std::pair<int,double>;
14
%template() std::pair<double,int>;
17
%feature("director") Foo;
19
%feature("director:except") {
23
if ($error == FAILURE) {
25
throw Swig::DirectorMethodException();
31
catch (...) { SWIG_fail; }
40
virtual std::string& bar(std::string& s)
46
virtual std::string ping(std::string s) = 0;
47
virtual std::string pong(const std::string& s)
48
{ return std::string("Foo::pong:") + s + ":" + ping(s); }
50
std::string tping(std::string s) { return ping(s); }
51
std::string tpong(const std::string& s) { return pong(s); }
53
virtual std::pair<double, int>
54
pident(const std::pair<double, int>& p) { return p; }
56
virtual std::vector<int>
57
vident(const std::vector<int>& p) { return p; }
59
virtual std::vector<int>
60
vsecond(const std::vector<int>& p, const std::vector<int>& s) { return s; }
62
std::pair<double, int>
63
tpident(const std::pair<double, int>& p) { return pident(p); }
66
tvident(const std::vector<int>& p) { return vident(p); }
68
virtual std::vector<int>
69
tvsecond(const std::vector<int>& p, const std::vector<int>& s) { return vsecond(p,s); }
72
virtual std::vector<std::string>
73
vidents(const std::vector<std::string>& p) { return p; }
75
std::vector<std::string>
76
tvidents(const std::vector<std::string>& p) { return vidents(p); }