std::thread 表达式必须含有常量值
时间: 2023-10-21 08:20:52 浏览: 89
不是的,std::thread表达式的参数并不一定需要是常量值。std::thread可以接受可调用对象作为参数,包括函数指针、函数对象以及lambda表达式等。这些可调用对象可以是变量,不一定需要是常量值。例如:
```cpp
#include <iostream>
#include <thread>
void func(int n) {
std::cout << "Thread running with value " << n << std::endl;
}
int main() {
int value = 10;
std::thread t(func, value);
t.join();
return 0;
}
```
在这个例子中,func函数不是常量值,而是一个可调用的函数。std::thread的参数value也不是常量值,而是一个变量。因此,std::thread的表达式并不要求常量值。
阅读全文