| %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; |
| Defaults1(int a = PRIVATE_DEFAULT) {} |
| double ret(double d = PUBLIC_DEFAULT) { return d; } |
| }; |
| %} |
| |
| %{ |
| const double Defaults1::PUBLIC_DEFAULT = -1.0; |
| %} |
| |
| // compactdefaultargs now on by default |
| %feature("compactdefaultargs"); |
| |
| // Turn compactdefaultargs off for the constructor 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; |
| Defaults2(int a = PRIVATE_DEFAULT) {} |
| double ret(double d = PUBLIC_DEFAULT) { return d; } |
| double nodefault(int x) { return x; } |
| }; |
| %} |
| |
| %{ |
| const double Defaults2::PUBLIC_DEFAULT = -1.0; |
| %} |