gpt4 book ai didi

C++ Raii 和堆栈展开

转载 作者:行者123 更新时间:2023-11-28 01:11:04 25 4
gpt4 key购买 nike

(我修改了原来的问题更有意义)

关于 return 语句,Raii 对象是否在 return 语句之前/之后/之间销毁?

例如

size_t advance() {
boost::lock_guard<boost::mutex> lock(mutex_);
return value_++; // is lock destroyed after increment?
}

谢谢

最佳答案

要回答您修改后的问题,给定代码:

return X;

X 将始终在返回发生之前进行评估。然后发生的事情相当于函数的所有嵌套范围被退出,从最里面到最外面的顺序,在每次退出时适本地调用析构函数。

关于C++ Raii 和堆栈展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3172805/

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