Scopeguard 生命周期/所需模式
可能的重复:
禁止实例化为临时对象(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我将利用预处理器来定义锁定伪关键字,如下所述: 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