Tôi đang gặp sự cố với std::thread
vì nó không chấp nhận các chức năng lấy các đối số được chỉ định tự động. Dưới đây là một số mẫu mã:Tại sao tôi không thể sử dụng tự động với std :: thread?
#include <iostream>
#include <vector>
#include <thread>
using namespace std;
void seev(const auto &v) // works fine with const vector<int> &v
{
for (auto x : v)
cout << x << ' ';
cout << "\n\n";
}
int main()
{
vector<int> v1 { 1, 2, 3, 4, 5 };
thread t(seev, v1);
t.join();
return 0;
}
Nhưng trình biên dịch nói:
[Error] no matching function for call to 'std::thread::thread(<unresolved overloaded function type>, std::vector<int>&)'
Tại sao điều này xảy ra? Đây có phải là vấn đề với ngôn ngữ hoặc GCC (4.9.2) không?
Đây có phải là 'C++ 14' không? – Alex
có nó là @Alex –
@AnkitAcharya Không, không phải. Đó là phần mở rộng gcc và được đề xuất cho C++ 17. – inf