这个问题已经在这里有了答案:




9年前关闭。






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

{
ScopeGuard sg(mutex);
// ...关键代码
}

我不小心在某个地方打字

{
ScopeGuard(互斥量);
// ...关键代码
}

这是有效的代码,但不会延长ScopeGuard对象在语句后的寿命。

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

最佳答案

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

07-27 13:39