Reputation: 6140
How can I assign the members of a vector with an atomic type?
#include <iostream>
#include <thread>
#include <vector>
using namespace std;
int main()
{
vector<atomic<bool>> myvector;
int N=8;
myvector.assign(N,false);
cout<<"done!"<<endl;
}
https://wandbox.org/permlink/lchfOvqyL3YKNivk
prog.cc: In function 'int main()':
prog.cc:11:28: error: no matching function for call to 'std::vector<std::atomic<bool> >::assign(int&, bool)'
11 | myvector.assign(N,false);
| ^
Upvotes: 8
Views: 435
Reputation: 217275
std::atomic
is neither copyable or move constructible, so you might do instead:
std::vector<std::atomic<bool>> myvector(8);
for (auto& b : myvector) { std::atomic_init(&b, false); }
Upvotes: 8