%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) %{ 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