mirror of https://github.com/swig/swig
67 lines
1017 B
OpenEdge ABL
67 lines
1017 B
OpenEdge ABL
%module overload_extend
|
|
|
|
#ifndef __cplusplus
|
|
%{
|
|
#include <stdlib.h>
|
|
%}
|
|
|
|
%typemap(default) double y "$1=1000;"
|
|
#endif
|
|
|
|
#ifdef SWIGLUA
|
|
// lua only has one numeric type, so some overloads shadow each other creating warnings
|
|
%warnfilter(SWIGWARN_PARSE_REDEFINED, SWIGWARN_LANG_OVERLOAD_SHADOW) Foo::test;
|
|
#else
|
|
%warnfilter(SWIGWARN_PARSE_REDEFINED) Foo::test;
|
|
#endif
|
|
|
|
|
|
|
|
%extend Foo {
|
|
int test() { return 0; }
|
|
int test(int x) { x = 0; return 1; }
|
|
int test(char *s) { s = 0; return 2; }
|
|
#ifdef __cplusplus
|
|
double test(double x, double y = 1000) { return x + y; }
|
|
#else
|
|
double test(double x, double y) { return x + y; }
|
|
#endif
|
|
};
|
|
|
|
|
|
%inline %{
|
|
struct Foo {
|
|
int variable;
|
|
#ifdef __cplusplus
|
|
int test() { return -1; }
|
|
#endif
|
|
};
|
|
%}
|
|
|
|
|
|
%extend Bar {
|
|
#ifdef __cplusplus
|
|
Bar() {
|
|
return new Bar();
|
|
}
|
|
~Bar() {
|
|
delete $self;
|
|
}
|
|
#else
|
|
Bar() {
|
|
return (Bar *) malloc(sizeof(Bar));
|
|
}
|
|
~Bar() {
|
|
free($self);
|
|
}
|
|
#endif
|
|
}
|
|
|
|
%inline %{
|
|
typedef struct {
|
|
int variable;
|
|
} Bar;
|
|
%}
|
|
|
|
|