TBB C++ multithreading error: No matching function for call

TBB C++ multithreading error: No matching function for call

以下 C++ 代码适用于英特尔 TBB。此代码也是由 Flow Graph 生成的。 我有 2 个编译错误:

No matching function for call to 'make_edge'
No matching function for call to 'make_edge'

这是带有定义的代码:

 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 * {

这是导致编译错误的 TBB 调用代码

make_edge( result_join, result_reporter);

make_edge( sott_target_node, input_port< 2 >( result_join ));

我很乐意提供所有代码,但 Whosebug 会防止代码过多而描述很少。任何人都可以帮助找出这些错误吗? 谢谢

您试图错误地使用 function_node 的输入。输入为 tuple<char *, char *> 的 function_node 需要一个输出为 tuple<char *, char *> 的前置任务。

如果这是你想要的(每个 char * 类型的节点有两个输入,char * 的输出)你应该使用 indexer_node(它有多个输入端口,任何端口上的任何输入都会导致发出一条消息,其中包含端口号和输入包装)连接到 function_node,该 function_node 的输出类型为 indexer_node.请查看文档,如有任何问题请询问。