C ++线程-没有匹配的函数来调用

奎蒂

这是我第一次在c ++中使用线程,但我遇到了一些问题。我遇到错误

error: no matching function for call to ‘std::thread::thread(<unresolved overloaded function type>, __gnu_cxx::__alloc_traits<std::allocator<packetInfo> >::value_type*)’

这是我的代码摘录:

std::vector<packetInfo> sentPackets; // global var

void renewIP(struct packetInfo *currentPacket) {
...//code
}

void anotherFuntion() {

    ...
    std::thread renewTimer(renewIP, &(sentPackets[i]));
    renewTimer.detach();
    ...
}

我完全不知道我在做什么错或为什么我得到了错误。

谢谢。

约翰·兹温克

该错误直接告诉您:

<unresolved overloaded function type>

您必须具有的多个重载renewIP,并且编译器不知道您要重载哪个。您可以重命名它们以使其不模糊,也可以通过强制转换将其显式显示:

std::thread renewTimer((void(*)(struct packetInfo*))renewIP, &(sentPackets[i]));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C ++线程“未找到匹配的重载函数”

C ++ Boost Geometry错误:没有匹配的函数来调用“ assertion_failed”

C ++没有匹配函数来调用向量push_back

C ++模板:没有匹配的调用函数

C ++错误:没有匹配的函数来调用'print_size'

C ++错误:没有匹配的函数来调用'simplex615 <arbitraryFunc> :: amoeba

我正在尝试学习如何在c ++中传递指针,但出现错误:没有匹配的函数来调用'test'。我究竟做错了什么?

多线程比没有线程慢C ++

线程C ++的lamda内部的函数调用

在没有C11线程的情况下,C标准库函数是否是线程安全的?

C ++-没有匹配的函数来调用'getaddrinfo'

C ++中的可调用类对象:没有匹配的函数来调用'std :: tuple <T> :: tuple(<括号包围的初始化程序列表>)'

C ++调用线程构造函数

C ++错误::没有匹配的函数来调用'function'

从C ++线程调用指针

C ++:没有匹配的函数来调用

C ++错误没有匹配的调用函数

C ++:没有匹配的函数可调用''

C#,删除带有子线程的对象时,GC没有调用析构函数

C ++ 11多线程合并排序,错误为“没有构造函数'std :: thread'的实例与参数列表匹配”

线程C ++:没有用于调用的匹配函数

C ++线程中的嵌套函数调用

发生没有匹配的函数来调用C ++中的错误

c ++:函数“没有匹配的函数可调用”错误

C ++中的多线程处理时出现“没有匹配的函数调用”错误

list1.erase( hash1.find ( p) ); 没有匹配的函数来调用“擦除”C++

C++ - 在 foreach 中复制向量给出“没有匹配的函数来调用 std::vector<int>::push_back(std::vector<int>&)”

Libtorch C++ - 没有匹配的成员函数来调用 InterpolateFuncOptions 的“size”

C++ - 没有匹配的函数调用