/tags/rel-1-3-15/SWIG/Examples/test-suite/overload_simple.i
Swig | 92 lines | 78 code | 14 blank | 0 comment | 0 complexity | 23f936023f49c2645c739822f08894ca MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- // Simple tests of overloaded functions
- %module overload_simple
- #ifndef SWIG_NO_OVERLOAD
- %immutable Spam::type;
- %inline %{
- struct Foo {
- };
- struct Bar {
- };
- char *foo(int) {
- return (char*) "foo:int";
- }
- char *foo(double) {
- return (char*) "foo:double";
- }
- char *foo(char *) {
- return (char*) "foo:char *";
- }
- char *foo(Foo *) {
- return (char*) "foo:Foo *";
- }
- char *foo(Bar *) {
- return (char *) "foo:Bar *";
- }
- char *foo(void *) {
- return (char *) "foo:void *";
- }
- class Spam {
- public:
- Spam() { type = "none"; }
- Spam(int) { type = "int"; }
- Spam(double) { type = "double"; }
- Spam(char *) { type = "char *"; }
- Spam(Foo *) { type = "Foo *"; }
- Spam(Bar *) { type = "Bar *"; }
- Spam(void *) { type = "void *"; }
- const char *type;
- char *foo(int) {
- return (char*) "foo:int";
- }
- char *foo(double) {
- return (char*) "foo:double";
- }
- char *foo(char *) {
- return (char*) "foo:char *";
- }
- char *foo(Foo *) {
- return (char*) "foo:Foo *";
- }
- char *foo(Bar *) {
- return (char *) "foo:Bar *";
- }
- char *foo(void *) {
- return (char *) "foo:void *";
- }
- static char *bar(int) {
- return (char*) "bar:int";
- }
- static char *bar(double) {
- return (char*) "bar:double";
- }
- static char *bar(char *) {
- return (char*) "bar:char *";
- }
- static char *bar(Foo *) {
- return (char*) "bar:Foo *";
- }
- static char *bar(Bar *) {
- return (char *) "bar:Bar *";
- }
- static char *bar(void *) {
- return (char *) "bar:void *";
- }
- };
- %}
- %include cmalloc.i
- %malloc(void);
- #endif