待定C++;多线程错误:调用没有匹配的函数 英特尔C++的TBB代码如下。这段代码也是由流程图生成的。 我有两个编译错误: No matching function for call to 'make_edge' No matching function for call to 'make_edge'
下面是带有定义的代码:待定C++;多线程错误:调用没有匹配的函数 英特尔C++的TBB代码如下。这段代码也是由流程图生成的。 我有两个编译错误: No matching function for call to 'make_edge' No matching function for call to 'make_edge',c++,multithreading,tbb,tbb-flow-graph,C++,Multithreading,Tbb,Tbb Flow Graph,下面是带有定义的代码: function_node< tbb::flow::tuple<char *,char *>, char * > result_reporter(position3_g0, 1, []( const tbb::flow::tuple<char *,char *> & in ) -> char * {... function_node< char *, char * > sott_target_node(po
function_node< tbb::flow::tuple<char *,char *>, char * > result_reporter(position3_g0, 1, []( const tbb::flow::tuple<char *,char *> & in ) -> char * {...
function_node< char *, char * > sott_target_node(position3_g0, unlimited, []( char *buffer ) -> char * {
function\u noderesult\u reporter(位置3\u g0,1,[](常量tbb::flow::tuple&in)->char*{。。。
函数节点sott\u目标节点(位置3\u g0,无限制,[](char*缓冲区)->char*{
下面是创建编译错误的TBB调用代码
make_edge( result_join, result_reporter);
make_edge( sott_target_node, input_port< 2 >( result_join ));
make_edge(result_join,result_reporter);
使_边(sott_目标_节点,输入_端口<2>(结果_连接));
我很乐意提供所有的代码,但是StackOverflow防止了太多的代码而没有太多的描述。有人能帮我找出这些错误吗?
谢谢您试图错误地使用function\u节点的输入。输入为
tuple
的function\u节点将使用输出为tuple
的前置节点
如果这是您想要的(有两个输入到节点,每个输入类型为
char*
,输出类型为char*
),您应该使用的组合是(有多个输入端口,任何端口上的任何输入都会导致发送带有端口号和输入包装的消息)连接到采用索引器节点的输出类型的函数节点
。请参阅文档,并询问您是否有任何问题。您试图错误地使用函数节点的输入。输入为元组
的函数节点采用具有元组
输出的前置ut
如果这是您想要的(有两个输入到节点,每个输入类型为char*
,输出类型为char*
),您应该使用的组合是(有多个输入端口,任何端口上的任何输入都会导致发送带有端口号和输入包装的消息)它连接到一个函数\u节点
,该节点采用索引器\u节点
的输出类型。请参阅文档,并询问您是否有任何问题。如果您需要仅在节点从其所有前辈接收到输出时才触发该节点,则需要一个join\u节点。.有三种加入策略;我猜是您需要排队联接。indexer_节点立即转发它从每个端口接收到的每条消息;联接等待,直到在每个输入端口至少有一个输入,然后再转发它们。联接的输出是元组。如果您只需要在节点从其所有前级接收到输出时触发该节点,则需要联接_节点。。有三种加入策略;我猜您需要排队加入。indexer_节点会立即转发从每个端口收到的每个消息;加入会等待每个输入端口至少有一个输入后再转发。加入的输出是元组。