Change typemap matching rules for the default type (SWIGTYPE) to follow template partial specialization type deduction. Fixes some containers of const pointers. SWIGTYPE*& typemps removed and replaced with SWIGTYPE *const&.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11958 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b1c5940786
commit
bdb136d611
41 changed files with 477 additions and 122 deletions
|
|
@ -70,6 +70,8 @@ public:
|
|||
|
||||
void ret6(int*& a) {}
|
||||
int*& ret7() {return GlobalIntPtr;}
|
||||
void ret8(int*const& a) {}
|
||||
int*const& ret9() {return GlobalIntPtr;}
|
||||
ReturnValuesTest() : int3(NULL) {}
|
||||
private:
|
||||
ReturnValuesTest& operator=(const ReturnValuesTest&);
|
||||
|
|
@ -112,7 +114,7 @@ int* const globalRet2() {return &GlobalInt;}
|
|||
return b;
|
||||
}
|
||||
|
||||
B const*& cbar(B const*& b) {
|
||||
B *const& cbar(B *const& b) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,8 +11,8 @@ class Klass6 {};
|
|||
class Klass7 {};
|
||||
|
||||
struct KlassMethods {
|
||||
static void methodA(::Klass1 v, const ::Klass2 cv, const ::Klass3 *cp, ::Klass4 *p, const ::Klass5 &cr, ::Klass6 &r, ::Klass7*& pr) {}
|
||||
static void methodB( Klass1 v, const Klass2 cv, const Klass3 *cp, Klass4 *p, const Klass5 &cr, Klass6 &r, Klass7*& pr) {}
|
||||
static void methodA(::Klass1 v, const ::Klass2 cv, const ::Klass3 *cp, ::Klass4 *p, const ::Klass5 &cr, ::Klass6 &r, ::Klass7*const& pr) {}
|
||||
static void methodB( Klass1 v, const Klass2 cv, const Klass3 *cp, Klass4 *p, const Klass5 &cr, Klass6 &r, Klass7*const& pr) {}
|
||||
};
|
||||
%}
|
||||
|
||||
|
|
@ -28,8 +28,8 @@ class XYZ7 {};
|
|||
}
|
||||
|
||||
struct XYZMethods {
|
||||
static void methodA(::Space::XYZ1 v, const ::Space::XYZ2 cv, const ::Space::XYZ3 *cp, ::Space::XYZ4 *p, const ::Space::XYZ5 &cr, ::Space::XYZ6 &r, ::Space::XYZ7*& pr) {}
|
||||
static void methodB( Space::XYZ1 v, const Space::XYZ2 cv, const Space::XYZ3 *cp, Space::XYZ4 *p, const Space::XYZ5 &cr, Space::XYZ6 &r, Space::XYZ7*& pr) {}
|
||||
static void methodA(::Space::XYZ1 v, const ::Space::XYZ2 cv, const ::Space::XYZ3 *cp, ::Space::XYZ4 *p, const ::Space::XYZ5 &cr, ::Space::XYZ6 &r, ::Space::XYZ7*const& pr) {}
|
||||
static void methodB( Space::XYZ1 v, const Space::XYZ2 cv, const Space::XYZ3 *cp, Space::XYZ4 *p, const Space::XYZ5 &cr, Space::XYZ6 &r, Space::XYZ7*const& pr) {}
|
||||
};
|
||||
%}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,21 +16,21 @@
|
|||
%typemap(jstype) Space::Classic ** " Classic "
|
||||
%typemap(javain) Space::Classic ** "Classic.getCPtr($javainput)"
|
||||
|
||||
// Default typemaps for pass by value, ref, pointer and pointer reference should use pgcpp
|
||||
// Default typemaps for pass by value, ref, pointer and pointer const reference should use pgcpp
|
||||
|
||||
%inline %{
|
||||
namespace Space {
|
||||
struct Classic {
|
||||
Classic() {}
|
||||
Classic(Classic c1, Classic& c2, Classic* c3, Classic*& c4, Classic** c5) {}
|
||||
Classic(const Classic c1, const Classic& c2, const Classic* c3, const Classic*& c4, const Classic** c5, bool b) {}
|
||||
Classic(Classic c1, Classic& c2, Classic* c3, Classic*const& c4, Classic** c5) {}
|
||||
Classic(const Classic c1, const Classic& c2, const Classic* c3, const Classic*const& c4, const Classic** c5, bool b) {}
|
||||
|
||||
void method(Classic c1, Classic& c2, Classic* c3, Classic*& c4, Classic** c5) {}
|
||||
void methodconst(const Classic c1, const Classic& c2, const Classic* c3, const Classic*& c4, const Classic** c5) {}
|
||||
void method(Classic c1, Classic& c2, Classic* c3, Classic*const& c4, Classic** c5) {}
|
||||
void methodconst(const Classic c1, const Classic& c2, const Classic* c3, const Classic*const& c4, const Classic** c5) {}
|
||||
};
|
||||
|
||||
void function(Classic c1, Classic& c2, Classic* c3, Classic*& c4, Classic** c5) {}
|
||||
void functionconst(const Classic c1, const Classic& c2, const Classic* c3, const Classic*& c4, const Classic** c5) {}
|
||||
void function(Classic c1, Classic& c2, Classic* c3, Classic*const& c4, Classic** c5) {}
|
||||
void functionconst(const Classic c1, const Classic& c2, const Classic* c3, const Classic*const& c4, const Classic** c5) {}
|
||||
}
|
||||
%}
|
||||
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ Klass& reftest(Klass& k) {
|
|||
k.append(" reftest");
|
||||
return k;
|
||||
}
|
||||
Klass*& pointerreftest(Klass*& k) {
|
||||
Klass *const& pointerreftest(Klass *const& k) {
|
||||
k->append(" pointerreftest");
|
||||
return k;
|
||||
}
|
||||
|
|
@ -334,7 +334,7 @@ std::string overload_rawbyptr(int i) { return "int"; }
|
|||
std::string overload_rawbyptr(Klass *k) { return "rawbyptr"; }
|
||||
|
||||
std::string overload_rawbyptrref(int i) { return "int"; }
|
||||
std::string overload_rawbyptrref(Klass *&k) { return "rawbyptrref"; }
|
||||
std::string overload_rawbyptrref(Klass *const&k) { return "rawbyptrref"; }
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ Klass& reftest(Klass& k) {
|
|||
k.append(" reftest");
|
||||
return k;
|
||||
}
|
||||
Klass*& pointerreftest(Klass*& k) {
|
||||
Klass *const& pointerreftest(Klass *const& k) {
|
||||
k->append(" pointerreftest");
|
||||
return k;
|
||||
}
|
||||
|
|
@ -275,7 +275,7 @@ std::string overload_rawbyptr(int i) { return "int"; }
|
|||
std::string overload_rawbyptr(Klass *k) { return "rawbyptr"; }
|
||||
|
||||
std::string overload_rawbyptrref(int i) { return "int"; }
|
||||
std::string overload_rawbyptrref(Klass *&k) { return "rawbyptrref"; }
|
||||
std::string overload_rawbyptrref(Klass *const&k) { return "rawbyptrref"; }
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ struct Struct {
|
|||
static Struct *pInstance;
|
||||
};
|
||||
|
||||
void set(Struct *& s) {
|
||||
void set(Struct *const& s) {
|
||||
Struct::instance = *s;
|
||||
}
|
||||
Struct *& get() {
|
||||
Struct *const& get() {
|
||||
return Struct::pInstance;
|
||||
}
|
||||
%}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue