指向std::promise的指针导致问题
A pointer to a std::promise causing problems
我得到以下错误
error: void value not ignored as it ought to be
*ptr->set_value(true);
make: *** [make] Error 1
从这个代码
std::vector<std::promise<bool>*> prs;
void xyz(){
std::promise<bool> pr;
prs.push_back(&pr);
std::future<bool> f = pr.get_future();
bool result = f.get();
}
void foo(void){
std::thread t(xyz);
std::this_thread::sleep_for(std::chrono::milliseconds(5));
for(std::promise<bool>* ptr: prs){
*ptr->set_value(true);
}
t.join();
}
int main(void){
foo();
return 0;
}
我理解"void value not ignore "通常意味着你试图在不合适的地方使用void值,但我在这个例子中看不到。
你有*ptr->set_value(true)
c++的优先级规则使此语句成为*(ptr->set_value(true))
。
set_value()
返回void
。你不能服从void
。
您可能想要(*ptr).set_value(true)
或ptr->set_value(true)
。这两种方法都可以,但是*ptr->set_value(true)
不行。
相关文章:
- 链表指针问题
- 指针问题:从不兼容的类型"int"分配给"int *"
- C++指针问题:如何修复这些代码中的错误?
- *++*++ppp,*++pp[1],*++(*(1+ppp)有什么具体的区别吗?(C/C++指针问题)
- C++ 入门加列表:10.9 "顶部"指针问题
- C++ 指针问题 - 通过方法更新指针
- 未分配正在释放的指针 - 指针问题
- 双指针问题通过函数传递错误
- 在C++中实现图形 DFS,指针问题
- 返回指针问题
- C++ - 有人有分析指针到指针问题的技巧吗?
- 选择排序指针问题
- 涉及删除操作的 C++ 指针问题
- 模板类指针问题 c++
- Swig和指针问题(python)
- 引用指针问题
- 函数指针问题
- 通过类型C++ 的继承树递归导致此指针问题
- 无法将文件读入字符数组(像往常一样,某些指针问题)
- 结构中的指针问题