| %module enum_forward | |
| /* This contains C code that is not valid C++03 and Octave, and Javascript(v8) wrappers are always compiled as C++ */ | |
| #if !defined(SWIGOCTAVE) && !defined(SWIG_JAVASCRIPT_V8) && !defined(SWIG_JAVASCRIPT_NAPI) | |
| %{ | |
| enum ForwardEnum1 { AAA, BBB }; | |
| enum ForwardEnum2 { CCC, DDD }; | |
| %} | |
| %inline %{ | |
| #if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) | |
| /* ISO C forbids forward references to ‘enum’ types [-Werror=pedantic] */ | |
| #pragma GCC diagnostic ignored "-Wpedantic" | |
| #endif | |
| #if !defined(__SUNPRO_C) | |
| enum ForwardEnum1; | |
| enum ForwardEnum2; | |
| enum ForwardEnum2; | |
| enum ForwardEnum3; | |
| #endif | |
| %} | |
| %inline %{ | |
| enum ForwardEnum1 get_enum1() { return AAA; } | |
| enum ForwardEnum1 test_function1(enum ForwardEnum1 e) { | |
| return e; | |
| } | |
| %} | |
| %inline %{ | |
| enum ForwardEnum2 get_enum2() { return CCC; } | |
| enum ForwardEnum2 test_function2(enum ForwardEnum2 e) { | |
| return e; | |
| } | |
| %} | |
| %inline %{ | |
| enum ForwardEnum3 { EEE, FFF }; | |
| enum ForwardEnum3 get_enum3() { return EEE; } | |
| enum ForwardEnum3 test_function3(enum ForwardEnum3 e) { | |
| return e; | |
| } | |
| %} | |
| %inline %{ | |
| #if !defined(__SUNPRO_C) | |
| enum ForwardEnum2; | |
| enum ForwardEnum3; | |
| #endif | |
| %} | |
| #endif |