这个问题已经在这里有了答案:
9年前关闭。
我使用Scopeguard进行这样的锁定(简化):
{
ScopeGuard sg(mutex);
// ...关键代码
}
我不小心在某个地方打字
{
ScopeGuard(互斥量);
// ...关键代码
}
这是有效的代码,但不会延长ScopeGuard对象在语句后的寿命。
问题:如果像第二个示例那样创建临时ScopeGuard对象,是否有任何模式会导致编译器错误或警告?
最佳答案
我将利用预处理器来定义锁伪关键字,如此处所述:http://www.curly-brace.com/lock.html