में मैक्रो का उपयोग क्यों करें मैं leveldb, esp का स्रोत कोड पढ़ रहा हूं। म्यूटॉक्सॉक के बारे में।कक्षा घोषणा
मैं इस घोषणा पाया:
class SCOPED_LOCKABLE MutexLock {
public:
explicit MutexLock(port::Mutex *mu) EXCLUSIVE_LOCK_FUNCTION(mu)
: mu_(mu) {
this->mu_->Lock();
}
~MutexLock() UNLOCK_FUNCTION() { this->mu_->Unlock(); }
private:
port::Mutex *const mu_;
// No copying allowed
MutexLock(const MutexLock&);
void operator=(const MutexLock&);
};
और मैंने पाया कि SCOPED_LOCKABLE
खाली के रूप में परिभाषित किया गया है, तो क्यों वर्ग घोषणा में इसका इस्तेमाल करते हैं?
मुझे लगता है कि कुछ विन्यास के साथ, मैक्रो अंत कुछ को परिभाषित किया जा रहा है (देखें http://gperftools.googlecode.com/svn-history/r99/trunk/src/base/thread_annotations.h) –
FYI: कोड Google के ओपन सोर्स प्रोजेक्ट leveldb से है: https: // github.com/google/leveldb/blob/77948e 7eec0613fb5cbecb7e320b9498607030b5/util/mutexlock.h –