线程对象可以和一般对象一样,其所有权可以被转移,示例如下:
#include <iostream>
#include <thread>
void get(std::thread&& t)
{
t.detach();
int a;
std::cin >> a;
std::cout << a << std::endl;
}
void task(const char* sz)
{
std::cout << sz << std::endl;
}
int main()
{
std::thread th(task, "i come from there!");
get(std::move(th));
return 0;
}