मैंने देखा कि ऐसा करना संभव था लेकिन मुझे ब्याज समझ में नहीं आया।एक अस्थिर पर const_cast <> का उद्देश्य क्या है?
उत्तर
यहाँ आंद्रेई Alexandrescu द्वारा एक Dr. Dobbs article कि इसके बारे में विस्तार से नहीं बल्कि अश्लील मात्रा में चला जाता है है।
यह एक बहुत ही दिलचस्प लेख है। Upvoted। – Puppy
कई अन्य चीज़ों के साथ-साथ Alexandrescu ने लिखा है, वह लेख प्रबुद्ध है। मैंने उस आलेख के बारे में एक प्रश्न पूछा और 'अस्थिर' क्वालीफायर के दुरुपयोग के बारे में पूछा कि वह कुछ समय पहले प्रस्तावित करता है http://stackoverflow.com/questions/2491495/may-volatile-be-in-user-defined-types-to- मदद-लेखन-धागा-सुरक्षित-कोड –
वास्तव में एक महान लेख। साझा करने के लिए धन्यवाद। +1। – jweyrich
const
और volatile
ध्वनि जैसे वे एक चर पर एक ही विचार को संदर्भित करते हैं, लेकिन वे नहीं करते हैं। एक const
चर वर्तमान कोड द्वारा बदला नहीं जा सकता है। वर्तमान कोड के बाहर कुछ बाहरी इकाई द्वारा volatile
चर बदल दिया जा सकता है। const volatile
वैरिएबल होना संभव है - विशेष रूप से मेमोरी मैप किए गए रजिस्टर की तरह कुछ - जो आपके प्रोग्राम की भविष्यवाणी नहीं कर सकता है, उस समय कंप्यूटर द्वारा बदल जाता है, लेकिन आपके कोड को सीधे बदलने की अनुमति नहीं है। आप const
या volatile
("सीवी-योग्यता") को एक चर में जोड़ने या निकालने के लिए const_cast
का उपयोग कर सकते हैं।
const
और volatile
ऑर्थोगोनल हैं।
const
का अर्थ है कि डेटा केवल पढ़ने के लिए है।
volatile
का मतलब बाहरी कारणों से परिवर्तनीय बदल सकता है ताकि संकलक को प्रत्येक बार संदर्भित होने पर स्मृति से चर को पढ़ने की आवश्यकता हो।
तो const
को हटाने के लिए आपको अन्यथा केवल पढ़ने-योग्य स्थान लिखने की अनुमति मिलती है (कोड में कुछ विशेष ज्ञान होना चाहिए जो स्थान वास्तव में संशोधित है)। आप volatile
यह लिखने के लिए है क्योंकि आप अपरिभाषित व्यवहार का कारण बन सकता को दूर नहीं करना चाहिए (कारण 7.1.5.1/7 के लिए - If an attempt is made to refer to an object defined with a volatile-qualified type through the use of an lvalue with a non-volatile-qualified type, the program behaviour is undefined.
)
'const_cast' दोनों 'const' और' volatile 'पर लागू होता है, और संभावित रूप से' अस्थिर 'को हटाने के दौरान अपरिभाषित व्यवहार हो सकता है , ऐसे मामले हैं जहां यह नहीं है। अर्थात। मेमोरी बाधाओं को जोड़ने से कंपाइलर को वैरिएबल को कैश नहीं किया जाएगा और एक मजबूत गारंटी प्रदान की जाएगी कि 'अस्थिर' (न केवल चर को कैश किया जाएगा, लेकिन यह निर्देश महत्वपूर्ण खंड के बाहर फिर से नहीं किया जाएगा)। –
- 1. एक्सएमएल <? ?> टोकन का उद्देश्य क्या है?
- 2. <winnt.h> में ANYSIZE_ARRAY का उद्देश्य क्या है?
- 3. सी # में अस्थिर कीवर्ड उद्देश्य क्या है?
- 4. <Out()> विशेषता। सेवा का क्या उद्देश्य है?
- 5. const_cast <> का उपयोग करते समय अपरिभाषित व्यवहार कहां है?
- 6. <span></span> तत्व क्या है?
- 7. Inumerable <T> पर सूची <T> का उपयोग करने का क्या फायदा है?
- 8. सी # में एक कंपाइलर अनुकूलन को रोकने 'अस्थिर' का उदाहरण? ,</p> <ol> <li>आवेषण बाड़ लक्ष्य प्रोसेसर</li> <li>के लिए आवश्यकतानुसार कुछ संकलक अनुकूलन</li> </ol> <p>86/amd64 पर रोकता है:
- 9. <fd-35> का अर्थ विमगोल्फ पर क्या है?
- 10. उद्देश्य सी <-> मोनो पुल
- 11. क्या जावा अस्थिर चर इसके पढ़ने से पहले एक पहले से पहले संबंध लगाते हैं?</p> <p><sub> स्निपेट एक::
- 12. Intellisense में LINQ विधियों पर कोण ब्रैकेट का क्या अर्थ है? (<>, गणना <>, अलग <>, आदि)
- 13. <form><tr> पर मान्य है?
- 14. एक DbSet <T> "सुरक्षित" पर AsQueryable <T> पर कॉल कर रहा है?
- 15. रुबी में i.to_s का अर्थ क्या है?</p> <pre><code>i.to_s </code></pre> <p>ऊपर कोड <code>i</code> में एक पूर्णांक है:
- 16. >>>>,> |, ||, | <, <, <<
- 17. एक .vimrc फ़ाइल में <leader> क्या है?
- 18. क्या <u> का एक अर्थपूर्ण संस्करण है?
- 19. अस्थिर प्रारूपण एकाधिक रेखा <<
- 20. <> मतलब क्या है?
- 21. वह भाषा क्या है? (<%REPEAT...%>, <% वैकल्पिक ...%>)
- 22. पर्ल: सी <our> क्या है?
- 23. "#!/Bin/env" का अर्थ क्या है (node.js स्क्रिप्ट के शीर्ष पर)?</p> <pre><code>#!/bin/env node </code></pre> <p>इसका क्या मतलब है:
- 24. c3p0.idle_test_period का उपयोग।</p> <pre><code>c3p0.idle_test_period </code></pre> <p>इस लिंक में:
- 25. क्या <tr><tbody>
- 26. जेएसएफ - <ui:repeat /> एक java.util.Set पर?
- 27. पायथन मॉड्यूल में "सूची = सूची" का क्या प्रभाव है?</p> <pre><code>list = list dict = dict </code></pre> <p>इस मुहावरे का क्या मतलब है:
- 28. <मेटा नाम = "निर्देशिका" सामग्री = "सबमिशन"> का उद्देश्य क्या है?
- 29. "<%:" क्या करता है?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>क्या "<%:" करता है: कर
- 30. उद्देश्य सी में "->" क्या है?
क्या आप 'कॉन्स्ट वोल्टाइल' से 'अस्थिर' या किसी और चीज से कास्टिंग करने के बारे में पूछ रहे हैं? –
हमेशा के रूप में, कुछ कोड पोस्ट करने में मदद मिलेगी। –
सी भाषा को हटाया गया है क्योंकि सी भाषा में 'const_cast <> ' –