草庐IT

ScopedLock

全部标签

c++ - 在 C++ 中显示 "anonymous"变量创建警告

我有这样一个类:classScopedLock{public:ScopedLock(Locker*lock){/*...*/}~ScopedLock(){/*...*/}};通常它被称为(这将在正确的地方调用ScopedLock的构造函数/析构函数):{ScopedLockl(&locker);//...}我不小心这样调用它:{ScopedLock(&locker);//...}这种“东西”的名称是什么?未使用的匿名局部变量?是否有可能避免这种情况?是否有针对此类“事物”的编译器警告? 最佳答案 您已经创建了一个类型为ScopedL

c++ - 临时实例的常量正确性

这里是“作用域锁”习语的例子,它有一个常见的错误:没有创建局部变量,所以锁没有生效。这段代码在VC++2010和ComeauC++在线编译都完美无缺:classMutex{public:voidlock(){}};classScopedLock{public:ScopedLock():m_pm(0){}ScopedLock(Mutex&m):m_pm(&m){m_pm->lock();}private:Mutex*m_pm;private:ScopedLock&operator=(constScopedLock&);ScopedLock(constScopedLock&);};clas