discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Overloaded make() with pybind11


From: Marcus Müller
Subject: Re: Overloaded make() with pybind11
Date: Fri, 22 Jan 2021 22:38:09 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

Hi Daniel,
engineer's finest remark:

"That is an *interesting* problem"

The problem here is that the arguments don't really allow for deduction with 
"make" you
meant, so:

I'd quickly work around that using a lambda function; try something like

      .def(py::init(
        [](int dual_basis, int interleave) {
            return decode_rs::make(dual_basis, int interleave);
        }),
           py::arg("dual_basis"),
           py::arg("interleave"),
           D(decode_rs,make)
        );

On 22.01.21 19:09, Daniel Estévez wrote:
> Hi,
> 
> I'm porting gr-satellites to GNU Radio 3.9. I have some blocks that have an 
> overloaded
> make() method, for example:
> 
> https://github.com/daniestevez/gr-satellites/blob/master/include/satellites/decode_rs.h
> 
> Maybe this wasn't a very wise design decision on my side.
> 
> Now I'm wondering if it's possible to use this with pybind11, and if so how 
> to do it.
> 
> gr_modtool bind (with pygccxml installed) is generating this:
> 
> https://gist.github.com/daniestevez/a3d0aaf7e6b2a68933ebb30e9043e7ac
> 
> which gives build problems like
> 
> /home/daniel/gr-satellites/python/bindings/decode_rs_python.cc: In function 
> 'void
> bind_decode_rs(pybind11::module&)':
> /home/daniel/gr-satellites/python/bindings/decode_rs_python.cc:39:39: error: 
> no matching
> function for call to 'init(<unresolved overloaded function type>)'
>    39 |         .def(py::init(&decode_rs::make),
>       |                                       ^
> 
> 
> Best,
> 
> Daniel.
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]