我想用異步函數在一個大的csv文件上一次運行多個進程,以避免長時間等待用戶但是我得到的錯誤:沒有實例的重載函數「async」匹配參數列表
no instance of overloaded function "async" matches the argument list
我已經搜索了一下,沒有發現任何修復它,並出於想法,因爲我很新的編碼C++任何幫助將不勝感激!我在下面列出了所有的代碼。
#include "stdafx.h"
#include <cstring>
#include <fstream>
#include <iostream>
#include <string>
#include <algorithm>
#include <future>
using namespace std;
string token;
int lcount = 0;
void countTotal(int &lcount);
void menu()
{
int menu_choice;
//Creates the menu
cout << "Main Menu:\n \n";
cout << "1. Total number of tweets \n";
//Waits for the user input
cout << "\nPlease choose an option: ";
cin >> menu_choice;
//If stack to execute the needed functionality for the input
if (menu_choice == 1) {
countPrint(lcount);
} else { //Validation and invalid entry catcher
cout << "\nPlease enter a valid option\n";
system("Pause");
system("cls");
menu();
}
}
void countTotal(int &lcount)
{
ifstream fin;
fin.open("sampleTweets.csv");
string line;
while (getline(fin, line)) {
++lcount;
}
fin.close();
return;
}
void countPrint(int &lcount)
{
cout << "\nThe total amount of tweets in the file is: " << lcount;
return;
}
int main()
{
auto r = async(launch::async, countTotal(lcount));
menu(); //Starts the menu creation
return 0;
}
'lcount'是一個全局變量,也由各地參照通過所有功能通過。在這一點上,它不需要是全球性的。此外,您正在爲全局變量和對該變量的引用使用相同的名稱。它會清除那個令人困惑的位。 –