使用Boost Python将具有数组参数的构造函数暴露给类

尼克·阿伯勒

我正在尝试使用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风格的数组。相反,我选择使用向量:

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)
;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用boost :: python将虚拟成员函数从C ++暴露给Python

来自分类Dev

具有可选参数的Boost.Python构造函数

来自分类Dev

如何使用带有 Boost.Python 的 std::map 或 std::vector 参数的构造函数包装 C++ 类?

来自分类Dev

如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

来自分类Dev

无法在类中使用带有数组的函数模板作为参数

来自分类Dev

(boost::)结果的错误处理:在具有构造和继承的构造函数中使用

来自分类Dev

如何使用具有构造函数参数的TypeScript类定义AngularJS工厂

来自分类Dev

如何使用具有相同参数类型的多个构造函数创建类

来自分类Dev

使用R S4类,是否可以具有非可选的构造函数参数

来自分类Dev

如何使用具有 List<T> 参数的构造函数解析类?

来自分类Dev

使用Boost Factory在构造函数中传递参数

来自分类Dev

使用Castle Windsor将具有不同实现的列表的对象作为构造函数参数进行解析

来自分类Dev

使用Boost :: Ptree的JSON数组

来自分类Dev

使用boost :: filesystem :: path作为参数的C ++构造函数调用-没有任何反应

来自分类Dev

使用sympy编译带有数组参数的函数

来自分类Dev

使用boost :: hana获取函数参数的类型

来自分类Dev

Boost Python 2:使用`std::string &`的构造函数

来自分类Dev

boost :: python:使用回调

来自分类Dev

具有数组参数的属性构造函数

来自分类Dev

如何在Boost C ++中对具有多个参数的函数使用二等分方法

来自分类Dev

使用Boost Graph Library将Boost动态属性写入文件

来自分类Dev

C ++:使用boost :: hana将数组元素扩展为函数的参数

来自分类Dev

使用带有std :: find_if的boost :: lambda或boost :: phoenix

来自分类Dev

使用Boost :: Python包装纯虚函数

来自分类Dev

使用Class.forName()初始化一个类,该类具有带参数的构造函数

来自分类Dev

Boost Python使用默认参数包装静态成员函数重载

来自分类Dev

使用默认参数将特定参数传递给Boost Python函数

来自分类Dev

在C ++中使用参数将类构造函数分配给新的构造函数

来自分类Dev

在构造函数具有非空参数列表的情况下使用构造函数引用

Related 相关文章

  1. 1

    使用boost :: python将虚拟成员函数从C ++暴露给Python

  2. 2

    具有可选参数的Boost.Python构造函数

  3. 3

    如何使用带有 Boost.Python 的 std::map 或 std::vector 参数的构造函数包装 C++ 类?

  4. 4

    如何在C ++中使用构造函数(只是构造函数)在类中初始化大型私有数组?

  5. 5

    无法在类中使用带有数组的函数模板作为参数

  6. 6

    (boost::)结果的错误处理:在具有构造和继承的构造函数中使用

  7. 7

    如何使用具有构造函数参数的TypeScript类定义AngularJS工厂

  8. 8

    如何使用具有相同参数类型的多个构造函数创建类

  9. 9

    使用R S4类,是否可以具有非可选的构造函数参数

  10. 10

    如何使用具有 List<T> 参数的构造函数解析类?

  11. 11

    使用Boost Factory在构造函数中传递参数

  12. 12

    使用Castle Windsor将具有不同实现的列表的对象作为构造函数参数进行解析

  13. 13

    使用Boost :: Ptree的JSON数组

  14. 14

    使用boost :: filesystem :: path作为参数的C ++构造函数调用-没有任何反应

  15. 15

    使用sympy编译带有数组参数的函数

  16. 16

    使用boost :: hana获取函数参数的类型

  17. 17

    Boost Python 2:使用`std::string &`的构造函数

  18. 18

    boost :: python:使用回调

  19. 19

    具有数组参数的属性构造函数

  20. 20

    如何在Boost C ++中对具有多个参数的函数使用二等分方法

  21. 21

    使用Boost Graph Library将Boost动态属性写入文件

  22. 22

    C ++:使用boost :: hana将数组元素扩展为函数的参数

  23. 23

    使用带有std :: find_if的boost :: lambda或boost :: phoenix

  24. 24

    使用Boost :: Python包装纯虚函数

  25. 25

    使用Class.forName()初始化一个类,该类具有带参数的构造函数

  26. 26

    Boost Python使用默认参数包装静态成员函数重载

  27. 27

    使用默认参数将特定参数传递给Boost Python函数

  28. 28

    在C ++中使用参数将类构造函数分配给新的构造函数

  29. 29

    在构造函数具有非空参数列表的情况下使用构造函数引用

热门标签

归档