增强Python C++函数调用另一函数

2024-09-24 22:22:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我在C++中编写了一个函数并成功构建。p>

不过,如果我只是从C++中的另一个函数调用它,那么构建失败了。p>

double getlistvalue(boost::python::list l, int index)
{
    if (index = -1)
        return 0;
    else
        return boost::python::extract<double>(l[index]);

}

double xx(boost::python::list l, int index)
{
    return getlistvalue(l, index);
}

上面的代码,没有第二个函数,它构建

以下是错误信息: error info

请分享如何解决这个问题的想法。非常感谢


Tags: 函数代码indexreturnifextracterrorelse
1条回答
网友
1楼 · 发布于 2024-09-24 22:22:08

您正在按值传递列表,这需要一个复制构造函数。错误消息告诉您尚未为列表提供复制构造函数。因此,解决方案是通过引用传递列表:

double getlistvalue(const boost::python::list &l, int index)

(另一个功能也是如此)

一般来说,通过值传递复杂对象(如列表)是一个坏主意,因为即使提供了复制构造函数,实际制作复制也可能非常昂贵

相关问题 更多 >