Я понимаю, что автоматический вывод типа. Я никогда не видел, чтобы он использовался как auto&
, и, кроме того, я не понимаю, что делает :
в этом коротком коде.
#include <iostream>
#include <vector>
#include <thread>
void PrintMe() {
std::cout << "Hello from thread: " << std::this_thread::get_id() << std::endl;
}
int main() {
std::vector<std::thread> threads;
for(unsigned int i = 0; i < 5; i++) {
threads.push_back(std::thread(PrintMe));
}
for(auto& thread : threads) {
thread.join();
}
return 0;
}
Я могу догадаться, что это какой-то синтаксический сахар, который заменяет
for(std::vector<std::thread>::iterator it = threads.begin(); it != threads.end(); it++ ) {
(*it).join();
}
но я не понимаю, как работает этот синтаксис, и что это делает и что там делает знак.