gpt4 book ai didi

c++ - if block 内的 std::lock_guard 范围

转载 作者:太空狗 更新时间:2023-10-29 19:38:29 24 4
gpt4 key购买 nike

目前正在研究 std::mutex 并希望得到一些帮助。如果我的代码看起来像 -

....
if(returnBoolValue())
{
std::lock_guard<std::mutex> lock(mutex_var);
....
....
}
....

std::lock_guard 是否保护函数返回 if 条件内的值? IE。 returnBoolValue()

如果可能的话,我应该如何改进它以便函数调用也在守卫内部?


最佳答案

目前如果不添加另一个作用域是不可能做到这一点的(C++17 有办法做到这一点)

一个解决方案是

....
{
std::lock_guard<std::mutex> lock(mutex_var);
if(returnBoolValue())
{
....
....
}
}
....

C++ 17 方式:

....
if(std::lock_guard<std::mutex> lock(mutex_var); returnBoolValue())
{
....
....
}
....

关于c++ - if block 内的 std::lock_guard 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39330745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com