C++ 没有名为'的类型;类型';按值传递变量时出错

C++ 没有名为'的类型;类型';按值传递变量时出错,c++,multithreading,C++,Multithreading,对于这样一个错误,我得到的所有解决方案都是通过引用传递变量的函数。如果我按值传递变量,但仍然得到错误,该怎么办。 这是我的密码 这些是MyProcess类中的公共全局变量 int n,gt,rt; string paths[10]; std::thread t[10]; 这是我制作多线程的函数 void MyProcess::start(){ int j; for (int i = 0; i < n; i++){ j=i+1; t[i] =std:

对于这样一个错误,我得到的所有解决方案都是通过引用传递变量的函数。如果我按值传递变量,但仍然得到错误,该怎么办。 这是我的密码

这些是MyProcess类中的公共全局变量

int n,gt,rt;
string paths[10];
std::thread t[10];
这是我制作多线程的函数

void MyProcess::start(){
   int j;
   for (int i = 0; i < n; i++){
       j=i+1;
       t[i] =std::thread(processVideo, paths[i], j, gt, rt);
   }
   for (int i = 0; i < n; i++)
       t[i].join();
}
我得到的错误是

C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1426: error: static assertion failed: Wrong number of arguments for pointer-to-member
       static_assert(_Varargs::value
       ^
C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1505: error: no type named 'type' in 'class std::result_of<std::_Mem_fn<void (MyProcess::*)(std::__cxx11::basic_string<char>, int, int, int)>(std::__cxx11::basic_string<char>, int, int, int)>'
       typedef typename result_of<_Callable(_Args...)>::type result_type;
                                                             ^
C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1526: error: no type named 'type' in 'class std::result_of<std::_Mem_fn<void (MyProcess::*)(std::__cxx11::basic_string<char>, int, int, int)>(std::__cxx11::basic_string<char>, int, int, int)>'
         _M_invoke(_Index_tuple<_Indices...>)
         ^
C:\Qt\Tools\mingw530\u 32\i686-w64-mingw32\include\C++\functional:1426:错误:静态断言失败:指向成员的指针的参数数目错误
静态断言(_Varargs::value)
^
C:\Qt\Tools\mingw530\u 32\i686-w64-mingw32\include\C++\functional:1505:错误:在“类std::result\u of”中没有名为“type”的类型
typedef typename result_of::type result_type;
^
C:\Qt\Tools\mingw530\u 32\i686-w64-mingw32\include\C++\functional:1526:错误:在“类std::result\u of”中没有名为“type”的类型
_M_invoke(_Index_tuple)
^

提前感谢。

可能重复的如果线程应该调用非静态成员函数(
processVideo
),它需要该类的实例。可能重复的请给出一个。当我复制和粘贴代码时,我应该得到完全相同或等效的编译器错误,不多不少。
C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1426: error: static assertion failed: Wrong number of arguments for pointer-to-member
       static_assert(_Varargs::value
       ^
C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1505: error: no type named 'type' in 'class std::result_of<std::_Mem_fn<void (MyProcess::*)(std::__cxx11::basic_string<char>, int, int, int)>(std::__cxx11::basic_string<char>, int, int, int)>'
       typedef typename result_of<_Callable(_Args...)>::type result_type;
                                                             ^
C:\Qt\Tools\mingw530_32\i686-w64-mingw32\include\c++\functional:1526: error: no type named 'type' in 'class std::result_of<std::_Mem_fn<void (MyProcess::*)(std::__cxx11::basic_string<char>, int, int, int)>(std::__cxx11::basic_string<char>, int, int, int)>'
         _M_invoke(_Index_tuple<_Indices...>)
         ^