C++ 期货和线程,运算符+;

C++ 期货和线程,运算符+;,c++,future,C++,Future,我的代码有问题。 以前所有的东西都是编译的,但现在我不知道为什么会有一些编译错误 double function (){ double total = 0; future<double> futures[n] ; for( int i = 0 ; i < m ; i = i + m/n){ futures[i%n] = futures[i%n] + async( launch::async, function_thread, i)

我的代码有问题。 以前所有的东西都是编译的,但现在我不知道为什么会有一些编译错误

double function (){
    double total = 0;
    future<double> futures[n] ; 

    for( int i = 0 ; i < m ; i = i + m/n){
        futures[i%n] = futures[i%n] +  async( launch::async, function_thread,  i);
    }


    for(int i = 0; i < n; i++){
        total = futures[i].get() + total;
    }

    return total;
}
double函数(){
双倍合计=0;
期货[n];
对于(int i=0;i
错误如下:

error: no match for 'operator+' (operand types are 'std::future<double>' and 'std::future<double>')
67 |   futures[i%n] =  futures[i%n] + async(  launch::async,function_thread, i);
错误:“运算符+”不匹配(操作数类型为“std::future”和“std::future”)
67 | futures[i%n]=futures[i%n]+异步(启动::异步,函数_线程,i);

我想将值存储在future[I%n]中,并将future[I%n]值加上另一个值,该值是由调用函数的I线程计算的。\u thread您不能添加
future
s。为什么不把所有的
未来的
提前存储到
向量中,然后迭代并调用
.get()
并对结果进行求和?你试图使用这种自行车技术的目的是什么?我想不出任何编译器会允许您在这里尝试的操作。未来!=它的价值。职业训练局是一个打字错误。