%module overload_numeric // Tests overloading of integral and floating point types to verify the range checking required // for dispatch to the correct overloaded method #ifdef SWIGLUA // lua only has one numeric type, so most of the overloads shadow each other creating warnings %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) Nums::over; #endif %{ #include %} %inline %{ #include #include struct Limits { signed char schar_min() { return SCHAR_MIN; } signed char schar_max() { return SCHAR_MAX; } short shrt_min() { return SHRT_MIN; } short shrt_max() { return SHRT_MAX; } int int_min() { return INT_MIN; } int int_max() { return INT_MAX; } float flt_min() { return FLT_MIN; } float flt_max() { return FLT_MAX; } double dbl_max() { return DBL_MAX; } }; struct Nums { const char * over(signed char v) { return "signed char"; } const char * over(short v) { return "short"; } const char * over(int v) { return "int"; } const char * over(float v) { return "float"; } const char * over(double v) { return "double"; } double doublebounce(double v) { return v; } }; %}