我正在考虑制作一个代表同步原语的所有权的类,如下所示:classCCriticalSectionLock{public:CCriticalSectionLock(CCriticalSection&cs):cs(cs){cs.Enter();}~CCriticalSectionLock(){cs.Leave();}private:CCriticalSection&cs;};这看起来是一个很好的方法,可以在函数执行期间获得所有权并确保释放所有权,即使存在多个退出点或异常也是如此。然而,它确实会引发一些微妙的问题,即编译器何时会对各种事物进行评估。考虑以下用途:intMyMethod(voi