Multithreading 调用“std::thread::thread()”时没有匹配的函数

Multithreading 调用“std::thread::thread()”时没有匹配的函数,multithreading,c++11,Multithreading,C++11,我得到了一个错误: void startCAM() { if(show_left){ cam_call = std::thread(show_image); } //Wait for data to be grabbed while(!has_data) sleep_ms(1); } 应该注意的是,我没有使用类或对象,因此show_image不是成员函数错误为std::thread::thread,这意味着有多个名为show_image的

我得到了一个错误:

void startCAM()
{

    if(show_left){
     cam_call = std::thread(show_image);
    }
    //Wait for data to be grabbed
    while(!has_data)
      sleep_ms(1);
}
应该注意的是,我没有使用类或对象,因此show_image不是成员函数

错误为std::thread::thread,这意味着有多个名为show_image的函数

您需要选择其中一个重载。例如:

     error: no matching function for call to ‘std::thread::thread(<unresolved     overloaded function type>)’
      cam_call = std::thread(show_image);

尝试使用运算符&的地址传递一个指向函数的指针。这很奇怪,你确定你没有做其他事情吗?也许还有另一个超负荷的show_图像?您发布的代码似乎有效:这很奇怪,我也收到了这些注释:/usr/include/c++/5/thread:133:7:note:candidate:template std::thread::thread_Callable&&,_Args&&。。。线程可调用&&&f、_参数&&__argsmy_main.cpp:289:43:注意:无法推断模板参数“\u Callable”cam\u call=std::threadshow\u image;thnx,我正在导入一个被遗忘和未使用的头文件,在那里我用相同的名称命名了另一个函数!!解决了我刚停止导入头文件时的问题!
     error: no matching function for call to ‘std::thread::thread(<unresolved     overloaded function type>)’
      cam_call = std::thread(show_image);
std::thread(static_cast<void(*)()>(show_image));