gpt4 book ai didi

python - 使用带有 Boost Python 的数组参数的构造函数公开类

转载 作者:行者123 更新时间:2023-11-30 04:03:28 29 4
gpt4 key购买 nike

我正在尝试使用如下所示的 Boost Python 导出类:

struct bool_array
{
bool_array(bool constructor_bool[7])
{
for(unsigned int i=0; i < 7; i++)
bools[i] = constructor_bool[i];
}

bool bools[7];
};

我也想公开构造函数,使用以下 Boost 代码:

class_<bool_array>("bool_array", init<bool*>())
.def_readwrite("bools", &bool_array::bools)
;

问题是我遇到了这个编译器错误:

error C2440: '=' : cannot convert from 'const bool [7]' to 'bool [7]'

我也试过

init<bool[7]>

init<bool[]>

没用。

我确信我遗漏了一些明显的东西,但我一直无法弄清楚我需要做什么来公开这个类。

谢谢

最佳答案

在思考这个问题时,我了解到 boost-python 不支持直接公开 C 样式数组。相反,我选择使用 vector :

struct bool_array
{
bool_array(std::vector<bool> constructor_bool)
{
for(unsigned int i=0; i < 7; i++)
bools.push_back(constructor_bool[i]);
}

std::vector<bool> bools;
};

使用以下 boost-python 包装器:

typedef std::vector<bool> BoolVector;
bp::class_<BoolVector>("BoolVector")
.def(bp::vector_indexing_suite<BoolVector>())
;

bp::class_<bool_array>("bool_array", bp::init<std::vector<bool>>())
.def_readwrite("bools", &bool_array::bools)
;

关于python - 使用带有 Boost Python 的数组参数的构造函数公开类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414769/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com