C++ 线程错误:没有名为 'type' MINGW 的类型

代码

我目前正在为我的操作系统类做一个项目,我必须编写一个程序来查找素数以在线程中运行。

所以我这样做了:

#include <iostream>
#include <cmath>
#include <thread>
#define THREADNUMBER 100
using namespace std;


int CONTADOR = 0;
int CONTADORTHREADEXECUTADA = 0;
int primeRange(int v1, int v2) {
int a, limit;                        
bool isprime;

for (int i = v1; i <= v2; i++) {
    if (i % 2 != 0 && i % 3 != 0) {
        isprime = true;
        limit = i / 2;
        if(i == 1) isprime =false;


        limit = (int)sqrt(i); //General case

        for(a=2; a <= limit; a++){
            if(i % i == 0 && i != 2){
                isprime = false;
                break;
            }
        }
        if (isprime) {
            CONTADOR++;
        }

    }
}
CONTADORTHREADEXECUTADA++;
return 1;
} 
int main(int argc, char *argv[ ] ) {
int number1 =  atoi(argv[1]);
int number2 = atoi(argv[2]);
int dif = number2-number1;
thread** vec = new thread*[THREADNUMBER];
cout<< "criando threads" <<endl;
int contadorthread = 0;
if (dif <= THREADNUMBER) {
    for(int i = number1; i <= number2; i++) {
        thread* t = new thread(primeRange(i,i));
        vec[contadorthread] = t; 
        contadorthread++;
    }
} else {
    int c = dif / THREADNUMBER;

    for(int i = number1; i <= number2; i+=(c+1)) {
        if (contadorthread==THREADNUMBER-1) {
            thread* t = new thread(primeRange(i,number2));
            vec[contadorthread] = t; 
            contadorthread++;
            break;
        }
        thread* t = new thread(primeRange(i,i+c));
        vec[contadorthread] = t; 
        contadorthread++;

    }
cout<<contadorthread << " threads criadas"<<endl;
cout<<"inicializando threads" <<endl;

while (CONTADORTHREADEXECUTADA < contadorthread) {
    cout<<contadorthread - CONTADORTHREADEXECUTADA << endl;
}
cout<< CONTADOR << "primos encontrados" <<endl;
} 
}

但是每次我尝试在 64 windows GCC 上编译时,我都会收到此错误消息,说没有名为“type”的类型

我用这个编译

g++ -Wall -g -std=c++11 -pthread codigo.cpp -o exe -Wall

我能做什么?我已经下载了他们说线程安全的 mingw 版本。

代码707

该声明

thread* t = new thread(primeRange(i,i));

调用函数 primeRange 并将 result(int) 传递给线程构造函数,这显然不是调用的方式。而是使用:

thread* t = new thread(primeRange, i, i);

它会将函数指针和参数传递给线程构造函数。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C++ 线程错误:没有名为“type”的类型

来自分类Dev

在“ std :: result_of”中没有名为“ type”的类型;从重载函数获取返回类型

来自分类Dev

错误:名称空间“ std”中没有名为“ vector”的类型

来自分类Dev

错误:在“class date::year_month_day”中没有名为“_traits”的类型?

来自分类Dev

仅缺少类变量支持,“ Class.Type”没有名为“ variable”的成员错误?

来自分类Dev

E / SQLiteDatabase:插入错误,表帐户没有名为control_type(代码1)的列:

来自分类Dev

Swift代码错误:String.Type没有名为'stringWithContentOfURL'的成员

来自分类Dev

MinGW 4.8.1 C ++ 11线程支持

来自分类Dev

MinGW 4.8.1 C ++ 11线程支持

来自分类Dev

在C ++中嵌入Python时,没有名为“ pyexpat”的模块错误

来自分类Dev

'UIStoryboard.type'没有名为'centerViewController'的成员

来自分类Dev

Swift:“ ViewController.Type”没有名为“ URL”的成员

来自分类Dev

ViewController.Type没有名为的成员

来自分类Dev

Swift'String.Type'没有名为'stringWithContentsOfFile'的成员

来自分类Dev

“'ViewController.Type'没有名为..的成员。”

来自分类Dev

Swift:“ Class.type”没有名为“ variable”的成员

来自分类Dev

“'ViewController.Type'没有名为..的成员。”

来自分类Dev

斯威夫特| viewController.type没有名为'rssTextField'的成员

来自分类Dev

使用MinGW的C中的分段错误

来自分类Dev

派生类“在<基类>中没有名为my_data的类型”中发生错误

来自分类Dev

在Swift中,我的错误说'UITableViewStyle.Type'没有名为'Default'的成员,我该怎么解决?

来自分类Dev

使用mingw64 c ++编译imapi2应用时,在imapi2.h中出现错误“无类型的'__RPC__range'的声明”

来自分类Dev

C ++中没有名为“ tuple”的模板

来自分类Dev

ZeroVM导入错误:没有名为线程的模块

来自分类Dev

编译C ++库mingw

来自分类Dev

名称空间“ std”中没有名为“ nullptr_t”的类型

来自分类Dev

类型“ System.Web.UI.WebControls.GridView”没有名为“ script”的公共属性

来自分类Dev

Android NDK-名称空间“ std”中没有名为“ function”的类型

来自分类Dev

Android NDK-名称空间“ std”中没有名为“ function”的类型

Related 相关文章

  1. 1

    C++ 线程错误:没有名为“type”的类型

  2. 2

    在“ std :: result_of”中没有名为“ type”的类型;从重载函数获取返回类型

  3. 3

    错误:名称空间“ std”中没有名为“ vector”的类型

  4. 4

    错误:在“class date::year_month_day”中没有名为“_traits”的类型?

  5. 5

    仅缺少类变量支持,“ Class.Type”没有名为“ variable”的成员错误?

  6. 6

    E / SQLiteDatabase:插入错误,表帐户没有名为control_type(代码1)的列:

  7. 7

    Swift代码错误:String.Type没有名为'stringWithContentOfURL'的成员

  8. 8

    MinGW 4.8.1 C ++ 11线程支持

  9. 9

    MinGW 4.8.1 C ++ 11线程支持

  10. 10

    在C ++中嵌入Python时,没有名为“ pyexpat”的模块错误

  11. 11

    'UIStoryboard.type'没有名为'centerViewController'的成员

  12. 12

    Swift:“ ViewController.Type”没有名为“ URL”的成员

  13. 13

    ViewController.Type没有名为的成员

  14. 14

    Swift'String.Type'没有名为'stringWithContentsOfFile'的成员

  15. 15

    “'ViewController.Type'没有名为..的成员。”

  16. 16

    Swift:“ Class.type”没有名为“ variable”的成员

  17. 17

    “'ViewController.Type'没有名为..的成员。”

  18. 18

    斯威夫特| viewController.type没有名为'rssTextField'的成员

  19. 19

    使用MinGW的C中的分段错误

  20. 20

    派生类“在<基类>中没有名为my_data的类型”中发生错误

  21. 21

    在Swift中,我的错误说'UITableViewStyle.Type'没有名为'Default'的成员,我该怎么解决?

  22. 22

    使用mingw64 c ++编译imapi2应用时,在imapi2.h中出现错误“无类型的'__RPC__range'的声明”

  23. 23

    C ++中没有名为“ tuple”的模板

  24. 24

    ZeroVM导入错误:没有名为线程的模块

  25. 25

    编译C ++库mingw

  26. 26

    名称空间“ std”中没有名为“ nullptr_t”的类型

  27. 27

    类型“ System.Web.UI.WebControls.GridView”没有名为“ script”的公共属性

  28. 28

    Android NDK-名称空间“ std”中没有名为“ function”的类型

  29. 29

    Android NDK-名称空间“ std”中没有名为“ function”的类型

热门标签

归档