提问者:小点点

access类如何与<Future>库一起工作?


我正在尝试用#include库制作一个程序。

当我尝试访问一个头函数时,我得到了一个错误。

no instance of overloaded function "async" matches the argument list -- argument types are: (std::launch, int ()) [line 16, 14]

a pointer to a bound function may only be used to call the function
[line 16, 37]

main.cpp:


#include "TEST.h"
#include <future>
#include <iostream>

using namespace std;
using namespace Class;

FNH f;


int main(){
    auto fn = async(launch::async, f.selam);
}

测试h:

#pragma once
#include <iostream>

using namespace std;

namespace Class{

    class FNH{
        public:
        int selam(){
            cout << "selam";
            return 1;
        }
    };

}

我是初学者,所以我真的不知道如何修复它或它的可能性。


共1个答案

匿名用户

将方法调用放入lambda

#include <future>
#include <iostream>

namespace Class{

class FNH {
public:
  int selam(){
    std::cout << "selam";
    return 1;
  }
};

}

int main(){
  Class::FNH f;
  auto fn = std::async(std::launch::async, [&f]{ return f.selam(); });
}