Re: C++ Function With Default Arguments?

Lluís Alemany Puig <[email protected]> Thu, 23 Sep 2021 07:31:30 +0200
Newsgroups gmane.comp.programming.swig
Message-ID <[email protected]>
You could try by adding

    %include stdint.i

in the appropriate location in your *.i file.

I didn't try this myself, but that's what I usually do when I use 
uint32_t, int32_t, irrespective of default parameters.

Cheers,

L

On 23/9/21 5:30, H C wrote:
> Hi,
>
> I have the following C++ function in `say.hpp`:
>
>     #include <iostream>
>
>
>     void say(const char* text, const uint32_t x = 16, const uint32_t y 
> = 24, const int32_t z = -1) {
>     std::cout << text << std::endl;
>     }
>
>
> Here is my `say.i`:
>
>     %module say
>     %{
>     #include "say.hpp"
>     %}
>
>     %include "say.hpp"
>
> Then, I built the shared library:
>
>     $ swig -python -c++ -I/usr/include say.i
>     $ g++ -fPIC -c say_wrap.cxx 
> -I/opt/rh/rh-python38/root/usr/include/python3.8
>     $ g++ -shared say_wrap.o -o _say.so
>
> Then, I tried to call it:
>
>     >>> import say
>     >>> say.say("hello")
>     Traceback (most recent call last):
>       File "<stdin>", line 1, in <module>
>       File "/home/hc/test/cpp/say.py", line 66, in say
>         return _say.say(text, x, y, z)
>     TypeError: Wrong number or type of arguments for overloaded 
> function 'say'.
>       Possible C/C++ prototypes are:
>         say(char const *,uint32_t const,uint32_t const,int32_t const)
>         say(char const *,uint32_t const,uint32_t const)
>         say(char const *,uint32_t const)
>         say(char const *)
>
>     >>>
>
> It seems something is wrong with having default values for the 
> function parameters as once I remove them, it works.
>
> I searched the mailing list, it seems there was a similar issue back 
> in 2015:
> https://sourceforge.net/p/swig/mailman/swig-user/thread/9693B382-97FB-41F2-BD0E-D5C009BA087D%40arlut.utexas.edu/#msg33340062 
> <https://sourceforge.net/p/swig/mailman/swig-user/thread/9693B382-97FB-41F2-BD0E-D5C009BA087D%40arlut.utexas.edu/#msg33340062>
>
> Is it the same bug?
>
> Thanks!
>
>
> _______________________________________________
> Swig-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/swig-user

_______________________________________________
Swig-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/swig-user