| %module csharp_argument_defaults_feature | |
| %include "std_string.i" | |
| %include <swiginterface.i> | |
| %feature("cs:defaultargs") Foo::Foo; | |
| %feature("cs:defaultargs", z=4) Foo::bar; | |
| %feature("cs:defaultargs", x="\"fives\"") Foo::zoo; | |
| %feature("cs:defaultargs", value="System.Math.PI") Foo::pi; | |
| %feature("cs:defaultargs", s=R"--("fives")--") Foo::lengthOfString; | |
| %feature("cs:defaultargs", z=4) ::gbar; | |
| %feature("cs:defaultargs", z=4) Foo::sbar; | |
| %feature("cs:defaultargs", z=4) AnInterface::foo; | |
| %interface(AnInterface) | |
| //intentionally don't touch bat, leave it to normal handling | |
| %inline %{ | |
| #include <string> | |
| enum EnumerationType { | |
| one=1, | |
| two, | |
| three | |
| }; | |
| int gbar(int x, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| int gbat(int x=1, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| class Foo { | |
| public: | |
| virtual ~Foo() {} | |
| Foo(int a, int b=1, int c=2) | |
| { | |
| } | |
| int bar(int x, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| int bat(int x=1, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| int zoo(std::string x="four") | |
| { | |
| return (int)x.size(); | |
| } | |
| double pi(double value=3.14) | |
| { | |
| return value; | |
| } | |
| int lengthOfString(const std::string& s="four") | |
| { | |
| return (int)s.size(); | |
| } | |
| int valueofenum(EnumerationType t=two) | |
| { | |
| return (int)t; | |
| } | |
| int valueofchar(char c='c') | |
| { | |
| return (int)c; | |
| } | |
| static int sbar(int x, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| static int sbat(int x=1, int y=2, int z=3) | |
| { | |
| return x+y+z; | |
| } | |
| }; | |
| class AnInterface | |
| { | |
| public: | |
| AnInterface() {} | |
| virtual int foo(int x=1, int y=2, int z=3) = 0; | |
| virtual ~AnInterface() {} | |
| }; | |
| class AnImplementation: public AnInterface | |
| { | |
| public: | |
| int foo(int x=1, int y=2, int z=3) | |
| { | |
| return x*y+z; | |
| } | |
| }; | |
| %} | |