Есть такой код:
class Value;
class MyClass {
private:
Value _value_;
mutable QMutex _mutex_;
public:
Value value() const
{
QMutexLock lock(&_mutex_);
return _value_;
}
};
При вызове value() что произойдет раньше: вызов коструктора копирования для Value или деструктора для QMutexLock? По-логике, копирование должно происходить раньше (и в GCC так и происходит), но не зависит ли этот код от компилятора?