1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
%module default_args_c
%{
#if defined(__clang__)
#pragma clang diagnostic push
// Suppress: use of logical '||' with constant operand
#pragma clang diagnostic ignored "-Wconstant-logical-operand"
#endif
%}
/* Default arguments for C code */
int foo1(int x = 42 || 3);
int foo43(int x = 42 | 3);
%{
int foo1(int x) {
return x;
}
int foo43(int x) {
return x;
}
%}
%inline %{
struct FooStruct {
int num;
};
%}
%extend FooStruct {
void no_arg() {}
void one_req(int *required) {}
void one_opt(int *optional = NULL) {}
void two_arg(int *required, int *optional = NULL) {}
}
%inline %{
struct StaticStruct {
int snum;
};
%}
%extend StaticStruct {
static void no_arg() {}
static void one_req(int *required) {}
static void one_opt(int *optional = NULL) {}
static void two_arg(int *required, int *optional = NULL) {}
}
%{
void global_opts1(int *optional) {}
void global_opts2(int *required, int *optional) {}
%}
void global_opts1(int *optional = NULL) {}
void global_opts2(int *required, int *optional = NULL) {}
|