Scopeguard所需的生命周期/模式

时间:2011-01-14 14:01:58

标签: c++ multithreading design-patterns

  

可能重复:
  prohibiting instantiation as a temporary object (C++)

我使用Scopeguard进行锁定(简化):

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

我意外地输入某个地方

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

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

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

1 个答案:

答案 0 :(得分:1)

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