我是英特尔TBB库的新手.如您所见,我的问题与tbb :: flow :: graph有关.我需要实现如下逻辑:
用户使用一些逻辑块绘制图形.每个块(节点)可以具有无限的连接(边缘),因此每个块(节点)可以选择接下来放置数据的位置.然后我的程序将在TBB库的帮助下构建这样的图形并执行计算.
所以我不知道是否有可能构造具有动态输出端口数的节点(我想它必须是multifunction_node).你能告诉我这样做的方法吗?
我需要在 tbb::flow::graph(英特尔 TBB 库)中的节点之间发送一些“重”类型,即其中包含动态数组的结构。如果我尝试在一个节点中创建此类结构的实例并将其上的指针发送到另一个节点,则会出现访问冲突(这是意料之中的,因为我尝试使用来自另一个线程的数据)。
因此,传递此类参数的唯一方法是使用适当的复制构造函数按值传递它们,不是吗?但是那样我们会浪费很多时间来复制......
更新:??????建议使用 std::unique_ptr 通过节点传递此类类型。但恐怕我不明白如何实现它。例如,如何将 std::unique_ptr 与 source_node 一起使用?
更新 2:使用 std::unique_ptr<> 在 flow_graph.h 第 287 行中给出 C2280 '试图引用已删除的函数'。
所以问题仍然存在。