%module template_extend_overload_2 #ifdef SWIGLUA // lua only has one numeric type, so some overloads shadow each other creating warnings %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) A; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) AT; %warnfilter(SWIGWARN_LANG_OVERLOAD_SHADOW) BT; #endif %inline %{ struct A { A() { } A(int) { } int hi() { return 0; } }; template <class T> struct AT { AT() { } AT(int) { } int hi() { return 0; } }; template <class T> struct BT { BT() { } BT(int) { } int hi() { return 0; } }; %} %extend A { // // this works // int hi(int) { return 0; } A(double i) { A* a = new A(); return a; } } %template(AT_double) AT<double>; %extend AT<double> { // // this doesn't work // int hi(int) { return 1; } AT<double>(double i) { AT<double>* a = new AT<double>(); return a; } } %extend BT<double> { // // this doesn't work either // int hi(int) { return 1; } BT<double>(double i) { BT<double>* a = new BT<double>(); return a; } } %template(BT_double) BT<double>;
Generated by dwww version 1.15 on Tue Jul 2 00:14:27 CEST 2024.