迭代 boost::python vector_indexing_suite 出现意外结果

2024-01-16

我已经成功包装了一个名为 Composite 的类。 这个类有以下方法:

std::vector<Composite*> Composite::getChildren();

我尝试使用 vector_indexing_suite 包装返回的 std::vector ,如下所示: [片段]

typedef std::vector<Composite*> CompositeArray;

BOOST_PYTHON_MODULE(composite)
{   
    class_<CompositeArray>("CompositeArray")
        .def(vector_indexing_suite<CompositeArray, true>());


    class_<Composite>("Composite", init<>())
        ... more wrapper
        .def("getChildren", &Composite::getChildren)
        ... more wrapper
        ;
}

现在一切似乎都正常工作,当我从 python 调用 getChildren() 方法时,它会正确返回一个包装的 CompositeArray。我可以这样做,例如:

from composite import Composite
myComp = Composite()

myComp.addChild('childA')
myComp.addChild('childB')

len(myComp.getChildren())  #returns 2
myComp.getChildren()[0] # returns the first child of type Composite

但是当我尝试迭代 CompositeArray 时,就像这样:

for child in myComp.getChildren():
    # do something with child...

我收到此错误消息:

TypeError: No to_python (by-value) converter found for C++ type: class Composite * __ptr64

考虑到按索引访问效果完美,这对我来说没有任何意义! 我被困在这个......你知道我做错了什么吗?

谢谢。


Try

class_<Composite, Composite*>("Composite", init<>())

代替

class_<Composite>("Composite", init<>())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迭代 boost::python vector_indexing_suite 出现意外结果 的相关文章

  • POCO HTTPSClientSession 发送请求时遇到问题 - 证书验证失败

    我正在尝试使用 POCO 库编写一个向服务器发出 HTTPS 请求的程序 出于测试目的 我正在连接到具有自签名证书的服务器 并且我希望允许客户端进行连接 为了允许这种情况发生 我尝试安装InvalidCertificateHandler这是
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 暂停下载线程

    我正在用 C 编写一个非常简单的批量下载程序 该程序读取要下载的 URL 的 txt 文件 我已经设置了一个全局线程和委托来更新 GUI 按下 开始 按钮即可创建并启动该线程 我想要做的是有一个 暂停 按钮 使我能够暂停下载 直到点击 恢复
  • 访问者和模板化虚拟方法

    在一个典型的实现中Visitor模式 该类必须考虑基类的所有变体 后代 在许多情况下 访问者中的相同方法内容应用于不同的方法 在这种情况下 模板化的虚拟方法是理想的选择 但目前这是不允许的 那么 模板化方法可以用来解析父类的虚方法吗 鉴于
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 默认情况下,Keras 自定义层参数是不可训练的吗?

    我在 Keras 中构建了一个简单的自定义层 并惊讶地发现参数默认情况下未设置为可训练 我可以通过显式设置可训练属性来使其工作 我无法通过查看文档或代码来解释为什么会这样 这是应该的样子还是我做错了什么导致默认情况下参数不可训练 代码 im
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 为什么拆箱枚举会产生奇怪的结果?

    考虑以下 Object box 5 int int int box int 5 int nullableInt box as int nullableInt 5 StringComparison enum StringComparison
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 双精度类型二维多维数组的 pinvoke 编组作为 c# 和 c++ 之间的输入和输出

    我有以下我正在尝试解决的双物质类型的 2d 多维数组的 c 和 c pinvoke 编组 我已经查看了以下热门内容以获得我目前拥有的内容使用双精度数组进行 P Invoke 在 C 和 C 之间编组数据 https stackoverflo
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检
  • 错误:无效使用不完整类型“类 Move”/未定义对 Move::NONE 的引用

    拜托 我不知道为什么这个简单的代码被拒绝 它给了我 2 个编译错误 请帮帮我 I use 代码 块 20 03 我的编译器是GNU GCC 移动 hpp class Move public Move Move int int public

随机推荐

  • 删除 Chrome 中音频播放器的最大宽度

    我希望默认的 HTML5 音频播放器适合其父容器的宽度 我将其显示设置为 块 宽度设置为 100 然而 Chrome 似乎在超过一定的窗口大小后开始在左侧和右侧添加填充 Firefox 的行为符合我的预期 播放器的边缘恰好到达父 div 的
  • 如何编写多行字符串文字

    有没有办法在 C 中使用 Perl 那样的多行纯文本 常量文字 也许有一些解析技巧 include正在读取一个文件 我知道你可以用 C 11 中的原始字符串来做到这一点 嗯 有点 最简单的方法是仅使用相邻字符串文字由编译器连接的事实 con
  • 关于 Team Foundation 中的功能和积压项目,Epics 是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 From 这个链接 https stackoverflow com questions 16698363 difference betwe
  • 收到远程通知后重新加载/刷新场景 swiftUI

    我有这个问题 我在 AppDelegate 中使用 application didReceiveRemoteNotification 收到来自 CloudKit 的通知 我能够接收 recordId 获取它并成功保存它 问题是 场景没有刷新
  • 比较两个 NumPy 数组是否相等(按元素)

    比较两个 NumPy 数组是否相等的最简单方法是什么 其中相等定义为 A B iff 对于所有索引 i A i B i 只需使用 给我一个布尔数组 gt gt gt numpy array 1 1 1 numpy array 1 1 1 a
  • 在 Javascript 中将 ISO/Windows 字符集转换为 UTF-8

    我正在开发一个火狐插件 我获取网页来为用户做一些分析 问题是当我尝试获取不是 utf 8 编码的 XMLHttpRequest 页面时 我看到的字符串是混乱的 例如 带有 windows 1125 的希伯来语页面或带有 gb2312 的中文
  • 在 JavaScript 中分配内存

    我们在深入研究 JavaScript 时遇到了麻烦 请帮助我们 提前致谢 下面的代码 为什么 samurai 仍然无法调用函数 yell gt var ninja yell function yell n return n gt 0 yel
  • 如何在我的数据库中实现 Twitter 转发操作

    我正在实现类似于 Twitter 的网络应用程序 我需要实施 转发 操作 并且一条推文可以被一个人转发多次 我有一个基本的 推文 表 其中包含以下列 Tweets tweet id 推文文本 tweet date created 推文用户
  • 为什么 SQL Server 2000 将 SELECT test.* 和 SELECT t.est.* 视为相同?

    我在 SQL Server 2000 中做了一个查询 并在表名中间添加了一个句点 SELECT t est FROM test 代替 SELECT test FROM test 并且查询仍然完美执行 Even SELECT t e st F
  • 域特定的 htpasswd 条件

    我正在使用通配符 dns 系统 该系统通过单个 Web 应用程序路由所有子域 并根据 URL 的第一部分 X domain com 其中 X 是用户名 设置用户 ID 我现在想要编辑 htaccess 文件 以针对特定域使用 htpassw
  • 如何按周对日期字段进行分组(每周从周六开始)?

    我知道当我看到这个问题的答案时我会 呃 但尽管如此 如何按周对日期字段进行分组 每周从周六开始 你需要先使用日期优先 http msdn microsoft com en us library ms181598 aspx to set Sa
  • 从 url 下载 csv 并将其设为数据框 python pandas

    我是 python 新手 所以在这里需要一些帮助 我有一个带有 url 列的数据框 其中包含一个链接 允许我为每个链接下载 CSV 我的目标是创建一个循环 任何有效的方法 以便我可以运行一个命令来下载 读取 csv 并为每一行创建一个数据框
  • 将外部数据插入到 persistence.xml 中

    我希望我的 persistence xml 动态设置它的一些属性 具体来说
  • 如何使用循环创建多列

    我正在努力以干燥的方式创建多个列 我已经搜索了谷歌和堆栈交换 但我仍然在努力解决以下问题 df lt data frame red 1 10 blue seq 1 30 3 myfunction lt function x log x 10
  • 非 NP 完全的 NP 困难问题更难?

    根据我的理解 所有 NP 完全问题都是 NP 困难问题 但已知某些 NP 困难问题不是 NP 完全问题 并且 NP 困难问题至少与 NP 完全问题一样困难 这是否意味着非 NP 完全的 NP 困难问题更难 以及如何更难 要回答这个问题 首先
  • JSch SFTP 安全性与 session.setConfig("StrictHostKeyChecking", "no");

    我使用 JSch 和 FTP 文件的私钥 jsch addIdentity privatekeyfile Session session jsch getSession user example com 22 session setConf
  • egit 锁失败 eclipse

    所以在工作中 我们都共享相同的存储 我们推拉我们的分支和所有好的 git 东西 所以我通常在 Eclipse 中从 egit 进行拉动和推压 我不是这里唯一一个大多数人这样做的人 但我的一些分支已经开始给我 锁定失败 无法锁定本地跟踪引用以
  • 如何在 python 中发现特定包中的类?

    我有一个插件样式模块包 它看起来像这样 Plugins Plugins init py Plugins Plugin1 py Plugins Plugin2 py etc 每个 py 文件都包含一个派生自的类PluginBaseClass
  • C++ 类中的静态常量成员

    如何在 C 中声明静态常量值 我希望能够获得常量 Vector3 Xaxis 但我不应该能够更改它 我在另一个类中看到了以下代码 const MyClass MyClass Constant 1 0 我尝试在课堂上实现这一点 static
  • 迭代 boost::python vector_indexing_suite 出现意外结果

    我已经成功包装了一个名为 Composite 的类 这个类有以下方法 std vector