From ffd76a5b4e1468dc4c2cd22ece432c7467274eb3 Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Thu, 1 Apr 2004 18:49:22 +0000 Subject: [PATCH] add ptr cases git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@5819 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Examples/test-suite/python/lib_std_pair.i | 13 +++++++++++++ .../test-suite/python/lib_std_pair_runme.py | 10 +++++++++- SWIG/Examples/test-suite/python/std_containers.i | 10 ++++++++++ .../test-suite/python/std_containers_runme.py | 11 ++++++++++- 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/SWIG/Examples/test-suite/python/lib_std_pair.i b/SWIG/Examples/test-suite/python/lib_std_pair.i index c3ad8ae96..0a50f8e64 100644 --- a/SWIG/Examples/test-suite/python/lib_std_pair.i +++ b/SWIG/Examples/test-suite/python/lib_std_pair.i @@ -34,6 +34,14 @@ namespace std { %template(ABPair) pair; %template(IntAPair) pair; + + %template(pairP1) pair; + %template(pairP2) pair; + %template(pairP3) pair; + %template(pairP4) pair; + %template(pairP5) pair; + %template(pairP6) pair; + } %std_comp_methods(std::pair, int>); @@ -92,6 +100,11 @@ std::pair } +std::pair +p_identa(const std::pair& p) { + return p; +} + void d_inout(double *INOUT) { *INOUT += *INOUT; diff --git a/SWIG/Examples/test-suite/python/lib_std_pair_runme.py b/SWIG/Examples/test-suite/python/lib_std_pair_runme.py index da156fb90..894edde53 100644 --- a/SWIG/Examples/test-suite/python/lib_std_pair_runme.py +++ b/SWIG/Examples/test-suite/python/lib_std_pair_runme.py @@ -38,4 +38,12 @@ if pab.first.val != 2: pci = lib_std_pair.CIntPair(1,0) -print len(psii) +a = lib_std_pair.A(5) +p1 = lib_std_pair.pairP1(1,a.this) +p2 = lib_std_pair.pairP2(a,1) +p3 = lib_std_pair.pairP3(a,a) + + +if a.val != lib_std_pair.p_identa(p1.this)[1].val: + raise RuntimeError + diff --git a/SWIG/Examples/test-suite/python/std_containers.i b/SWIG/Examples/test-suite/python/std_containers.i index 6975b2190..099d78a96 100644 --- a/SWIG/Examples/test-suite/python/std_containers.i +++ b/SWIG/Examples/test-suite/python/std_containers.i @@ -31,10 +31,15 @@ return c; } + struct C + { + }; } %template(map_si) std::map; +%template(pair_iC) std::pair; +%template(map_iC) std::map; %template(mmap_si) std::multimap; %template(set_i) std::set; %template(multiset_i) std::multiset; @@ -58,6 +63,11 @@ return v; } + std::map mapidentc(const std::map& v) + { + return v; + } + std::map mapidenti(const std::map& v) { return v; diff --git a/SWIG/Examples/test-suite/python/std_containers_runme.py b/SWIG/Examples/test-suite/python/std_containers_runme.py index f1b7f53ab..419d99171 100644 --- a/SWIG/Examples/test-suite/python/std_containers_runme.py +++ b/SWIG/Examples/test-suite/python/std_containers_runme.py @@ -50,7 +50,16 @@ map['3'] = 2 if map != std_containers.mapident(map): raise RuntimeError, "bad map" - + + +mapc ={} +c1 = std_containers.C() +c2 = std_containers.C() +mapc[1] = c1.this +mapc[2] = c2 + +std_containers.mapidentc(mapc) + vi = std_containers.vector_i((2,2,3,4))