वर्तमान मसौदे से निम्नलिखित अंश से पता चलता है कि मैं क्या मतलब है:सी ++ 0x | क्यों std :: परमाणु अस्थिर-योग्यता के साथ प्रत्येक विधि overloads?
namespace std {
typedef struct atomic_bool {
bool is_lock_free() const volatile;
bool is_lock_free() const;
void store(bool, memory_order = memory_order_seq_cst) volatile;
void store(bool, memory_order = memory_order_seq_cst);
bool load(memory_order = memory_order_seq_cst) const volatile;
bool load(memory_order = memory_order_seq_cst) const;
operator bool() const volatile;
operator bool() const;
bool exchange(bool, memory_order = memory_order_seq_cst) volatile;
bool exchange(bool, memory_order = memory_order_seq_cst);
bool compare_exchange_weak(bool&, bool, memory_order, memory_order) volatile;
bool compare_exchange_weak(bool&, bool, memory_order, memory_order);
bool compare_exchange_strong(bool&, bool, memory_order, memory_order) volatile;
bool compare_exchange_strong(bool&, bool, memory_order, memory_order);
bool compare_exchange_weak(bool&, bool, memory_order = memory_order_seq_cst) volatile;
bool compare_exchange_weak(bool&, bool, memory_order = memory_order_seq_cst);
bool compare_exchange_strong(bool&, bool, memory_order = memory_order_seq_cst) volatile;
bool compare_exchange_strong(bool&, bool, memory_order = memory_order_seq_cst);
atomic_bool() = default;
constexpr atomic_bool(bool);
atomic_bool(const atomic_bool&) = delete;
atomic_bool& operator=(const atomic_bool&) = delete;
atomic_bool& operator=(const atomic_bool&) volatile = delete;
bool operator=(bool) volatile;
} atomic_bool;
}
वाष्पशील सकर्मक है। इस प्रकार, आप अस्थिर वस्तु से गैर-अस्थिर सदस्य फ़ंक्शन को कॉल नहीं कर सकते हैं। दूसरी ओर, एक अस्थिर सदस्य कार्य को एक अस्थिर वस्तु से कॉल करने की अनुमति है।
तो, वहाँ परमाणु कक्षाओं में अस्थिर और गैर वाष्पशील सदस्य कार्यों के बीच किसी भी कार्यान्वयन का अंतर है? दूसरे शब्दों में, क्या गैर-अस्थिर अधिभार की आवश्यकता है?
एक बेहतर सवाल क्यों की जरूरत है 'होने के लिए पहली जगह में volatile' भार के है। – GManNickG
@GMan: क्योंकि अन्यथा अस्थिर डेटा पर फ़ंक्शंस को नहीं बुलाया जा सकता था। ;) – jalf
@jalf: Ha, हाँ, लेकिन ऑपरेशन के बाद से ही प्रकार स्वयं परमाणु (और इसलिए देखने योग्य) बनाता है, हम 'अस्थिर परमाणु <> 'क्यों बनायेंगे? मुझे लगता है कि मुझे कुछ बड़ा याद आ रहा है। – GManNickG