Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;11作为类成员的线程向量_C++_Multithreading_Oop_C++11_Vector - Fatal编程技术网

C++ c++;11作为类成员的线程向量

C++ c++;11作为类成员的线程向量,c++,multithreading,oop,c++11,vector,C++,Multithreading,Oop,C++11,Vector,有人能解释为什么我不能写这样的线程向量吗: //This is declared in a namespace const uint MAXTHREADSAMOUNT = std::thread::hardware_concurrency(); //... //declared in the same namespace class AI { static vector<std::thread> Helpers(MAXTHREADSAMOUNT); }; 这与向量是静态的

有人能解释为什么我不能写这样的线程向量吗:

//This is declared in a namespace
const uint MAXTHREADSAMOUNT = std::thread::hardware_concurrency();
//...

//declared in the same namespace
class AI {
    static vector<std::thread> Helpers(MAXTHREADSAMOUNT);
};
这与向量是静态的无关,但是我注意到,如果向量不是在类或结构对象中声明的,那么第一个方法可以工作


所以我的问题是,为什么vector需要存储的类型通过构造函数显式传递,而不是使用模板中已经声明的类型?

您不能内联初始化静态数据成员,第二个版本也是错误的,它实际上是一个函数声明,返回线程向量并获取线程。只需在类外初始化它,就像您所希望的那样

vector<std::thread> AI::Helpers(MAXTHREADSAMOUNT);
向量AI::Helpers(MAXTHREADSAMOUNT);
不能内联初始化静态数据成员,第二个版本也是错误的,它实际上是一个函数声明,返回线程向量并获取线程。只需在类外初始化它,就像您所希望的那样

vector<std::thread> AI::Helpers(MAXTHREADSAMOUNT);
向量AI::Helpers(MAXTHREADSAMOUNT);
Ahh,谢谢你,我忘了初始化。这似乎已经清除了错误,谢谢,我忘记了初始化。这似乎已经消除了错误
vector<std::thread> AI::Helpers(MAXTHREADSAMOUNT);