From: SourceForge.net <no...@so...> - 2009-01-30 10:24:53
|
Bugs item #2548621, was opened at 2009-01-30 10:24 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2548621&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: php Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Barry Cohen (barrycohen) Assigned to: kruland (kruland) Summary: Overloaded functions can produce impossible situation Initial Comment: In SWIG 1.3.37, the PHP wrapper produced for certain overloaded functions with default parameters can make it impossible to call the function with some arguments. A complete example is attached, but a header file which demonstrates the problem is: struct foo { void my_func(int a) { printf("func1\n"); } void my_func(double a, bool b = false) { printf("func2\n"); } }; According to the cxx wrapper function, the number of arguments (value of argc) is always 3, regardless of the number of arguments passed into the function. Therefore $r = new foo(); $r->my_func(1); cannot call the wrapper function where argc is 2 (for 'this' and 'long'). The error is: PHP Fatal error: No matching function for overloaded 'foo_my_func' Thanks Barry ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2548621&group_id=1645 |
From: SourceForge.net <no...@so...> - 2009-06-30 13:37:35
|
Bugs item #2548621, was opened at 2009-01-30 10:24 Message generated for change (Comment added) made by olly You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2548621&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: php Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Barry Cohen (barrycohen) >Assigned to: Olly Betts (olly) Summary: Overloaded functions can produce impossible situation Initial Comment: In SWIG 1.3.37, the PHP wrapper produced for certain overloaded functions with default parameters can make it impossible to call the function with some arguments. A complete example is attached, but a header file which demonstrates the problem is: struct foo { void my_func(int a) { printf("func1\n"); } void my_func(double a, bool b = false) { printf("func2\n"); } }; According to the cxx wrapper function, the number of arguments (value of argc) is always 3, regardless of the number of arguments passed into the function. Therefore $r = new foo(); $r->my_func(1); cannot call the wrapper function where argc is 2 (for 'this' and 'long'). The error is: PHP Fatal error: No matching function for overloaded 'foo_my_func' Thanks Barry ---------------------------------------------------------------------- >Comment By: Olly Betts (olly) Date: 2009-06-30 14:37 Message: Kevin's no longer active in SWIG so reassigning to myself. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=101645&aid=2548621&group_id=1645 |