सी ++ 11 मानक में, अनुभाग 1.10/5 उल्लेख, लेकिन औपचारिक रूप से acquire operation
, release operation
, और consume operation
शर्तों को परिभाषित नहीं करता है। यह कुछ स्मृति स्मृति, परमाणु संचालन, और स्मृति बाड़ के कार्यों का वर्णन करने के लिए इन शर्तों का उपयोग करने के लिए धारा 2 9 में चला जाता है। उदाहरण के लिए, 29.3/1 "आदेश और संगति" पर कहा गया है:सी ++ 11 मानक औपचारिक रूप से अधिग्रहण, रिहाई को परिभाषित, और संचालन का उपभोग करता है?
memory_order_release, memory_order_acq_rel, और memory_order_seq_cst: एक दुकान संचालन एक रिहाई आपरेशन प्रभावित स्मृति पर [जोर जोड़ा] करता है स्थान।
भाषा के इस प्रकार के खंड 29 के दौरान दोहराया है, लेकिन यह मुझे थोड़ा परेशान करती है कि memory_order
enumerations के लिए सभी अर्थ आपरेशन प्रकार है कि खुद को मानक द्वारा औपचारिक रूप हो रहे हैं नहीं है पर आधारित होते हैं, फिर भी कुछ होना आवश्यक है आमतौर पर परिभाषाओं के रूप में प्रभावी होने के लिए इसका अर्थ है।
एक अलग तरह रखो, अगर मैंने कहा, बार और foo अस्पष्ट हैं, क्योंकि इनमें से अवधि औपचारिक रूप से परिभाषित किया गया है की ठोस अर्थ "एक बार एक फ़्लिप foo है।" केवल उनके रिश्तेदार स्वरूप परिभाषित किए जाते हैं।
क्या सी ++ 11 मानक, या कुछ अन्य सी ++ 11 मानक समिति दस्तावेज़ औपचारिक रूप से परिभाषित करता है कि वास्तव में acquire operation
, release operation
इत्यादि क्या है, या ये आमतौर पर समझने वाले शब्द हैं? यदि उत्तरार्द्ध, क्या कोई अच्छा संदर्भ है जिसे इन परिचालनों के अर्थ के लिए उद्योग मानक माना जाता है? मैं विशेष रूप से, क्योंकि हार्डवेयर स्मृति स्थिरता मॉडल समान बनाया नहीं कर रहे हैं पूछना है, और इसलिए मैं वहाँ होना चाहिए कुछ सामान्य रूप से सहमति-के संदर्भ में है कि उन को लागू करने compilers, आदि ठीक से देशी विधानसभा आदेश में इन आपरेशनों के शब्दों का अनुवाद करने देता लगाना कर रहा हूँ।
मैं ओपी से सहमत हूं। चाहे मानक तार्किक रूप से समझने वाला एक प्रश्न है, लेकिन किसी भी दर पर मानक इस विशेष बिंदु पर असामान्य रूप से भ्रमित है। – thb
[जेफ Preshing के ब्लॉग रिहाई/अधिग्रहण के बारे में पोस्ट] (http://preshing.com/20120913/acquire-and-release-semantics/) के संबंध में आवश्यक आदेश देने के मामले में उन्हें परिभाषित करता है पहले/बाद में लोड/स्टोर, एक में जिस तरह से सी ++ 11 अर्थशास्त्र के साथ संगत है। मुझे एहसास नहीं हुआ था कि सी ++ 11 ने औपचारिक रूप से इस तरह के शब्दों को परिभाषित नहीं किया था। –