मैं अपने समग्र डिजाइन में थोड़ा और अधिक दोबारा विचार करना होगा, लेकिन के रूप में यह खड़ा है, ऐसा लगता है कि मैं कुछ ऐसा करना चाहते हैं हो सकता है:क्या आप मानचित्र के लिए कुंजी के रूप में boost :: shared_ptr का उपयोग कर सकते हैं?
class A;
class B;
std::map<boost::shared_ptr<const A>, B> APtrToBMap;
मैं इस की कोशिश की है, और यह में काम प्रतीत होता है एक साधारण मामला (संकलक शिकायत नहीं करता था, और सरल परीक्षण काम करने लगते हैं)। लेकिन मुझे इस दृष्टिकोण के बारे में दूसरे विचार हैं। मुझे संदेह है कि वहां कुछ गठिया हैं जिन्हें मैं नहीं जानता हूं।
तो, इसके बाद के संस्करण के लिए एक व्यावहारिक अर्थ में मान्य है? या क्या कोई दोष है, मुझे पता नहीं है कि मैं ऐसा कब करता हूं?
से उन shared_ptr वस्तुओं में पास क्या काम नहीं करता है विफल हो सकता है? –
@ सैम, सिर्फ इसलिए कि आपको कोई समस्या नहीं मिली है, इसका मतलब यह नहीं है कि यह कोई भी नहीं है। मुझे लगता है कि इस तरह के गैर मानक उपयोग के लिए संभावित समस्याओं के बारे में पूछना एक अच्छा विचार है। –
आपकी प्रतिक्रियाओं के लिए सभी को धन्यवाद। जैसा कि आप में से कुछ ने ध्यान दिया, यह मुख्य रूप से खराब डिजाइन का एक लक्षण है; मैं गलत जगह में एक समस्या को हल करने की कोशिश कर रहा था। मैंने तब से अपने डिजाइन को दोबारा तैयार किया है और मुझे उस खराब मानचित्र को करने की आवश्यकता नहीं होगी जिसके बारे में मैंने सवाल किया था। जवाब यह क्यों एक बुरा विचार है कि वास्तव में प्रबुद्ध थे; मैं अपने आंत में जानता था कि यह काफी नहीं करेगा जो मैं करना चाहता था; मैं अभी तक क्यों नहीं देख सका। (वास्तव में जो मैं करने की कोशिश कर रहा था वह ऊपर से टेम्पर्ड किए गए मानचित्र के साथ काम नहीं करेगा) – Taeolas