add test for std::vector<A*>

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5839 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2004-04-07 00:53:48 +00:00
commit f9d781feee
2 changed files with 19 additions and 5 deletions

View file

@ -58,14 +58,19 @@ void halve_in_place(std::vector<double>& v) {
namespace Test {
struct A {
virtual ~A() {}
virtual void f(const int i) const = 0;
virtual int f(const int i) const = 0;
};
struct B : public A {
void f(const int i) const
{ std::cout << "B::f(int)\n"; }
int val;
B(int i = 0) : val(i)
{
}
int f(const int i) const { return i + val; }
};
}
%}
%template(VecB) std::vector<Test::B>; // works
%template(VecA) std::vector<Test::A*>; // Does not work
%template(VecB) std::vector<Test::B>;
%template(VecA) std::vector<Test::A*>;

View file

@ -24,3 +24,12 @@ bv[3]= 0
if bv[0] != bv[2]:
raise RuntimeError,"bad std::vector<bool> mapping"
b = B(5)
va = VecA([b,b,b,b])
if va[0].f(1) != 6:
raise RuntimeError,"bad std::vector<A*> mapping"
b.val = 7
if va[3].f(1) != 8:
raise RuntimeError,"bad std::vector<A*> mapping"