如何捕获(警告)未命名的本地对象?

时间:2016-02-12 07:05:20

标签: c++ warnings

我有一个类,它在构造函数中分配一些资源并在析构函数中释放它。例如一个关键部分。我们称之为class CriticalSection。我在一个关键的代码块的开头创建一个变量,并在结束括号中删除它:

void Worker::Work()
{
    // some work goes here
    ....;

    // the critical block
    {
        CriticalSection cs(aReferenceToTheLock);

        // some critical work here
        .....;
    } // <-- destruction of cs, the lock gets released

    // further unprotected code
    ....;
}

嗯,这就是它应该如何完成的。唉,发生了一点遗漏:

    {
        CriticalSection(aReferenceToTheLock);

        // some work here
        .....;
    }

没有cs变量名称!因此,构造函数调用会创建一个临时的匿名变量,该变量会立即被销毁,只是在分号行的分号处。并且整个街区不再受到保护。

可以检测到这种错误吗?我应该在gcc或msvc编译器中启用任何特定警告吗?

0 个答案:

没有答案