वहाँ वास्तव में कुछ संदर्भ को शायद मौजूदा ऑब्जेक्ट अर्थ विज्ञान किया है। इसे एक (कॉन्स) सूचक कहा जाता है। एक सादा पुराना गैर-मालिक सूचक।
- प्वाइंटर अशक्त हो सकता है, संदर्भ नहीं कर सकते हैं: वहाँ संदर्भ और संकेत के बीच तीन मतभेद हैं। यह बिल्कुल अंतर है जिसे आप
std::optional
से बाधित करना चाहते हैं।
- पॉइंटर्स को किसी अन्य चीज़ पर इंगित करने के लिए रीडायरेक्ट किया जा सकता है। इसे बनाओ, और वह अंतर भी गायब हो जाता है।
- संदर्भों को
->
या *
द्वारा अस्वीकृत करने की आवश्यकता नहीं है। यह शुद्ध वाक्य रचनात्मक चीनी है और 1 की वजह से संभव है। और पॉइंटर सिंटैक्स (डीरफ्रेंसिंग और बूल के लिए परिवर्तनीय) बिल्कुल std::optional
मूल्य तक पहुंचने और इसकी उपस्थिति का परीक्षण करने के लिए प्रदान करता है।
अद्यतन: optional
मूल्यों के लिए एक कंटेनर है। अन्य कंटेनरों की तरह (vector
, उदाहरण के लिए) को संदर्भों के लिए डिज़ाइन नहीं किया गया है। यदि आप एक वैकल्पिक संदर्भ चाहते हैं, तो पॉइंटर का उपयोग करें, या यदि आपको वास्तव में std::optional
पर समान वाक्यविन्यास वाला इंटरफ़ेस चाहिए, तो पॉइंटर्स के लिए एक छोटा (और छोटा) रैपर बनाएं।
Update2: सवाल क्यों ऐसी कोई विशेषज्ञता है के लिए के रूप में: क्योंकि समिति बस इसे बाहर जाने का चुनाव किया था। तर्क कागजात में कहीं भी पाया जा सकता है। यह संभवतः इसलिए है क्योंकि वे पॉइंटर्स को पर्याप्त मानते हैं।
स्रोत
2014-11-11 10:29:53
अंततः मैं निष्कर्ष निकाला हूं कि मैं अपने उद्देश्यों के लिए 'std :: वैकल्पिक>' का उपयोग कर सकता हूं। –
Orient