gpt4 book ai didi

c++ - 有什么方法可以在 tbb::flow::graph 中的节点之间发送 "heavy"类型吗?

转载 作者:行者123 更新时间:2023-11-30 03:48:00 26 4
gpt4 key购买 nike

我需要在 tbb::flow::graph(英特尔 TBB 库)中的节点之间发送一些“重”类型,即内部具有动态数组的结构。如果我尝试在一个节点中创建此类结构的实例并将其上的指针发送到另一个节点,我会遇到访问冲突(这是预期的,因为我尝试使用来自另一个线程的数据)。

所以传递此类参数的唯一方法是使用适当的复制构造函数按值传递它们,不是吗?但是这样我们会浪费很多时间去复制...

更新:πìντα ῥεῖ 建议使用 std::unique_ptr 通过节点传递此类类型。但恐怕我不明白如何实现。例如,如何将 std::unique_ptr 与 source_node 一起使用?

更新 2: 使用 std::unique_ptr<> 在 flow_graph.h 第 287 行中给出 C2280“试图引用已删除的函数”。

所以问题仍然悬而未决。

最佳答案

最大,

不幸的是 std::unique_ptr 没有属性 CopyConstructible,这是 flow::graph 传递对象消息的要求>.

你可以试试 std::shared_ptr ,它确实具有该属性。我们修复了缓冲区中对象保留的问题(这导致大对象被保留,直到图形被重置())。如果您发现任何问题,请告诉我们。

问候,克里斯

关于c++ - 有什么方法可以在 tbb::flow::graph 中的节点之间发送 "heavy"类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33418650/

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