2010-03-29 13 views
12

में एक सूचक उजागर मैं इस बहुत ही सरल सी ++ वर्ग हैBoost.Python

No to_python (by-value) converter found for C++ type: Node* 

से जो मैं समझता हूं, ऐसा इसलिए होता है क्योंकि पाइथन बाहर निकल रहा है क्योंकि इसमें पॉइंटर्स की कोई अवधारणा नहीं है। मैं पाइथन से हेड वैरिएबल तक कैसे पहुंच सकता हूं?

मुझे समझ में आता है कि मुझे encapsulation का उपयोग करना चाहिए, लेकिन मैं वर्तमान में एक गैर-encapsulation समाधान की आवश्यकता के साथ फंस गया हूँ।

उत्तर

20

बेशक, मैं इस सवाल का जवाब दस मिनट सवाल पूछने के बाद लगता है ... यहाँ यह कैसे किया है:

class_<Tree>("Tree") 
    .add_property("head", 
    make_getter(&Tree::head, return_value_policy<reference_existing_object>()), 
    make_setter(&Tree::head, return_value_policy<reference_existing_object>())) 
; 
+0

यह सही नहीं लग रहा। शायद आप 'return_internal_reference' चाहते हैं। – elmo

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