Scopeguard 生命周期/所需模式

发布于 2024-10-12 04:56:21 字数 484 浏览 1 评论 0原文

可能的重复:
禁止实例化为临时对象(C++)

我使用 Scopeguard像这样锁定(简化):

{
ScopeGuard sg(mutex);
// ...critical code
}

我不小心在某个地方输入了

{
ScopeGuard(mutex);
// ...critical code
}

有效代码,但不会延长 ScopeGuard 对象的生命周期超过该语句。

问题:如果我像第二个示例一样创建临时 ScopeGuard 对象,是否有任何模式会导致编译器错误或警告?

Possible Duplicate:
prohibiting instantiation as a temporary object (C++)

I use a Scopeguard for locking like this (simplified):

{
ScopeGuard sg(mutex);
// ...critical code
}

I accidently typed in some place

{
ScopeGuard(mutex);
// ...critical code
}

which is valid code but does not extend the lifetime of the ScopeGuard object past the statement.

Question: Is there any pattern that will result in a compiler error or warning if I create a temporary ScopeGuard object like in the second example?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

Hello爱情风 2024-10-19 04:56:21

我将利用预处理器来定义锁定伪关键字,如下所述: http://www .curly-brace.com/lock.html

I'd leverage the preprocessor to define a lock pseudo-keyword, as described here: http://www.curly-brace.com/lock.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文