test compactdefaultargs feature

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7560 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2005-09-30 21:32:12 +00:00
commit fff590d2e5
3 changed files with 53 additions and 0 deletions

View file

@ -93,6 +93,7 @@ CPP_TEST_CASES += \
constructor_explicit \
constructor_value \
contract \
compactdefaultargs \
conversion \
conversion_namespace \
conversion_ns_template \

View file

@ -0,0 +1,32 @@
%module compactdefaultargs
// compactdefaultargs off by default
// The following should compile with compactdefaultargs off
%inline %{
class Defaults1 {
static const int private_default = -1;
public:
static const double public_default = -1.0;
Defaults1(int a = private_default) {}
double ret(double d = public_default) { return d; }
};
%}
// compactdefaultargs now on by default
%feature("compactdefaultargs");
// Turn compactdefaultargs off for the ret method which can't work with this feature
%feature("compactdefaultargs", "0") Defaults2(int a = private_default);
%inline %{
class Defaults2 {
static const int private_default = -1;
public:
static const double public_default = -1.0;
Defaults2(int a = private_default) {}
double ret(double d = public_default) { return d; }
};
%}

View file

@ -0,0 +1,20 @@
from compactdefaultargs import *
defaults1 = Defaults1(1000)
defaults1 = Defaults1()
if defaults1.ret(10.0) != 10.0:
raise RuntimeError
if defaults1.ret() != -1.0:
raise RuntimeError
defaults2 = Defaults2(1000)
defaults2 = Defaults2()
if defaults2.ret(10.0) != 10.0:
raise RuntimeError
if defaults2.ret() != -1.0:
raise RuntimeError