2012-12-19 13 views
6

के लिए एक अजगर कमजोर संदर्भ प्राप्त करना मैंने Boost.Python का उपयोग कर एक C++ क्लास लपेट लिया है। इन ऑब्जेक्ट्स में C++ - पक्ष पर मजबूत संदर्भ (boost :: shared_ptr) हैं, और पाइथन में भी अड़चन मजबूत संदर्भ हो सकते हैं। अब तक, सब ठीक काम करता है। हालांकि, अगर मैं एक मजबूत संदर्भों में से एक पाइथन कमजोर संदर्भ बनाता हूं, तो आखिरी पायथन मजबूत संदर्भ गायब हो जाने पर यह कमजोर संदर्भ हटा दिया जाता है। मैं जीवित रहने के लिए कमजोर संदर्भ चाहता हूं जब तक कि C++ पक्ष पर अंतिम मजबूत संदर्भ भी गायब न हो जाए। क्या यह हासिल करना संभव है?Boost.Python: एक लिपटे सी ++ ऑब्जेक्ट

एक और तरीका वाक्यांशित किया गया है: क्या कोई विशेष सी ++ ऑब्जेक्ट (बूस्ट.पथन द्वारा लिपटे) अभी भी मौजूद है, तो अजगर से पता लगाने का कोई तरीका है?

उत्तर

1

आप लिपटे वर्ग में "सी ++ मजबूत संदर्भ" कैसे रखते हैं?

मैं बूस्ट पायथन पर काफी जंगली हूं, लेकिन मेरा मानना ​​है कि यह बढ़ावा है :: shared_ptr की डिलीटर उपस्थिति जो जीवनभर प्रबंधन सुनिश्चित करती है।

यदि यह समस्या नहीं है, तो आपको शायद बूस्ट :: पायथन :: ऑब्जेक्ट में C++ में उदाहरण को पकड़ने की आवश्यकता है।

+0

जैसा कि आपको संदेह है, मैं एक boost :: shared_ptr में मजबूत संदर्भ रख रहा हूं। मैंने सवाल स्पष्ट कर दिया है। क्या आप दूसरे पैराग्राफ पर विस्तृत कर सकते हैं? मुझे इस मुद्दे से कनेक्शन नहीं लग रहा है - क्षमा करें। – uli

संबंधित मुद्दे