है मैं एक समस्या है कि जब मैं कुछ इस तरह का उपयोग करें:कैसे वापस जाने के लिए "नहीं मिला" जब वापसी मान स्थिरांक संदर्भ
const MyList& my_list = getListForThisRegion(/*region ID, ...*/);
मुझे पता है कि जब कोई मूल्य नहीं पाया जाता है वापस जाने के लिए नहीं है।
मेरी समस्या यह है कि मैं संकेतक (getListForThisRegion
से मूल्य लौटने पर) कॉलर को "मूल्य नहीं मिला" संकेत देना चाहता हूं। अगर मैं एक सूचक लौटा रहा था, तो मैं nullptr
वापस कर सकता था, लेकिन मुझे नहीं पता कि संदर्भों के साथ इसे कैसे किया जाए। मैं सोच सकता हूं कि कुछ स्थिर सदस्य not_found
टाइप MyList
है, और इसके संदर्भ में लौट रहा है, लेकिन यह बदसूरत लगता है।
और हाँ, मैं मूल्य वापस नहीं कर सकता क्योंकि सूचियां "वसा" होती हैं और अक्सर उपयोग की जाती हैं।
संपादित करें: महान उत्तरों का टन, लेकिन अपवाद स्वीकार्य समाधान नहीं है क्योंकि इसे उठाए जाने की संख्या उच्च है (प्रतिशत nbNotFound/nbCalls
उच्च है)।
EDIT2: बढ़ावा के बारे में :: वैकल्पिक - यह मास्टर के लिए कितना जटिल है? मेरा मतलब है कि इसे कुछ गैर स्पष्ट ज्ञान की आवश्यकता है (गैर स्पष्ट = कुछ जो सिंटैक्स को नहीं जानता है)?
अपवाद फेंकना एक अच्छा विकल्प हो सकता है। – BigMike
आप 'boost :: वैकल्पिक' – Akanksh
पर भी देखना चाहते हैं एक संदर्भ को किसी ऑब्जेक्ट को संदर्भित करना है, इसलिए आप या तो अपवाद फेंकते हैं या संदर्भ का उपयोग नहीं करते हैं। 'बूस्ट :: वैकल्पिक' एक अच्छा विकल्प है, लेकिन यह अधिक हो सकता है; बस एक सूचक का उपयोग करें। – GManNickG